module Function where import Prelude ( Integer, Int, (-) ) infixr 9 . ; (.) :: (b -> c) -> (a -> b) -> a -> c ; (f . g) x = f (g x) ; infixr 0 $ ; ($) :: (a -> b) -> a -> b ; f $ x = f x ; -- $! applyStrict :: (Integer -> a) -> (Integer -> a) ; applyStrict f 0 = f 0 ; applyStrict f x = f x ; flip :: (b -> a -> c) -> a -> b -> c ; flip f x y = f y x ; id :: a -> a ; id x = x ; nest :: Int -> (a -> a) -> a -> a ; nest 0 _ x = x ; nest n f x = nest (n-1) f (f x) ; const :: a -> b -> a ; const a _ = a ; fix :: (a -> a) -> a ; fix f = f (fix f) ;