module Basic func1 :: a -> a func2 :: Bool -> Int func3 :: [a] -> [a] func4 :: (a -> b) -> [a] -> [b] data Data1 a Data2 :: Data1 a Data3 :: a -> Data1 a data Data4 Data5 :: Int -> Bool -> Data4