Vedanta
It is time to publish some more results. Type-level reasoning A function application - corresponds to /Modus Ponens/ A specialization, an instance of it. > ($) :: (a -> b) -> a -> b > ($) f x = f x Reversed order of agreements, still the same /Modus Ponens/ > (|>) :: a -> (a -> b) -> b > (|>) x f = f x "Multi-argument" is just /currying/ -- ~* ->*->*-> *~ Same, but with an explicit /abstraction barrier/ (and /lifting/) > (>>=) :: m a -> (a -> m b) -> m b > (>>=) ma f = undefined -- has to be defined for each particular type (an instance) Notice that this is essentially a type-signature of ~fmap~, > fmap :: f a ->(a->b) -> f b with a reversed order of arguments and a specialized function....