-- | Function composition.{-# INLINE (.) #-}-- Make sure it has TWO args only on the left, so that it inlines-- when applied to two functions, even if there is no final argument(.) :: (b -> c) -> (a -> b) -> a -> c(.) f g = \x -> f (g x)
-- | Application operator. This operator is redundant, since ordinary-- application @(f x)@ means the same as @(f '$' x)@. However, '$' has-- low, right-associative binding precedence, so it sometimes allows-- parentheses to be omitted; for example:---- > f $ g $ h x = f (g (h x))---- It is also useful in higher-order situations, such as @'map' ('$' 0) xs@,-- or @'Data.List.zipWith' ('$') fs xs@.{-# INLINE ($) #-}($) :: (a -> b) -> a -> bf $ x = f x