(.) ($) , :
(.) :: (b->c) -> (a->b) -> (a->c)
($) :: (b->c) -> b -> c
b ~ (a->b) c ~ (a->c), " ", " ", .
Prelude> let g a b = let x = a . b ; y = a $ b in undefined
<interactive>:1:24:
Occurs check: cannot construct the infinite type: a = a1 -> a
....
, , , - :
> : (.)
(.):: (b → c) → (a → b) → a → c - GHC.Base
infixr 9.
Prelude > : ($)
($):: (a → b) → a → b - GHC.Base
infixr 0 $
: , . $ . , f $ g $ ... $ h $ x f . g . ... . h $ x.
,
f $ g $ x = f $ (g $ x) = ($) f (($) g x)
f . g $ x = (f . g) $ x = ($) ((.) f g) x
. ($) (.); , .