module Util where

infixl 5 >.

(>.) :: (a -> b) -> (b -> c) -> a -> c
>. :: forall a b c. (a -> b) -> (b -> c) -> a -> c
(>.) = ((b -> c) -> (a -> b) -> a -> c) -> (a -> b) -> (b -> c) -> a -> c
forall a b c. (a -> b -> c) -> b -> a -> c
flip (b -> c) -> (a -> b) -> a -> c
forall b c a. (b -> c) -> (a -> b) -> a -> c
(.)

infixl 4 |>

(|>) :: a -> (a -> b) -> b
|> :: forall a b. a -> (a -> b) -> b
(|>) a
x a -> b
f = a -> b
f a
x

unwrapOr :: a -> Maybe a -> a
unwrapOr :: forall a. a -> Maybe a -> a
unwrapOr a
_ (Just a
x) = a
x
unwrapOr a
y Maybe a
_ = a
y

tup :: a -> b -> (a, b)
tup :: forall a b. a -> b -> (a, b)
tup a
a b
b = (a
a, b
b)