module Control.Eternal.Syntax.Operators
  ( (<|)
  , (|>)
  , (<<|)
  , (|>>)
  ) where

infixl 2 <|, |>

(<|) :: (a -> b) -> a -> b
f <| a = f a

(|>) :: a -> (a -> b) -> b
a |> f = f a

infixl 7 <<|, |>>

(<<|) :: (a -> b) -> a -> b
f <<| a = f a

(|>>) :: a -> (a -> b) -> b
a |>> f = f a