--
-- Author: benjamin.a.schulz@gmail.com (Ben Schulz)
-- License: BSD3
--
module Control.FPipe where

-- | These operators provide trivial F#-style pipes for function composition and
-- application.

infixr 0 <$
(<$) :: (a -> b) -> a -> b
(<$) = ($)

infixl 0 $>
($>) :: b -> (b -> b1) -> b1
($>) = flip ($)

infixr 9 <.
(<.) :: (b -> c) -> (a -> b) -> a -> c
(<.) = (.)

infixl 9 .>
(.>) :: (a -> b) -> (b -> c) -> a -> c
(.>) = flip (.)