lambdabot-4.0: scripts/hoogle/test/data/examples/ClassesEx.hs
module ClassesEx where
class Class1 a where
func1 :: a -> Bool
class Class1 a => Class2 a where
func2 :: a -> Bool
data Data1 = Data1
data Data2 a = Data2 a
instance Class1 Data1 where
func1 a = True
instance Class2 Data1 where
func2 a = False
instance Class1 (Data2 a) where
func1 a = True
instance Eq a => Class2 (Data2 a) where
func2 a = True
func3 :: Class1 a => a -> Bool
func3 x = func1 x
func4 :: (Eq a, Class2 a) => a -> Bool
func4 x = True
func5 :: (Class1 a, Class2 b) => a -> b -> Bool
func5 x y = True