-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Various type-level operators -- -- A set of type-level operators meant to be helpful, e.g. ($) and a -- tightly binding (->). @package type-operators @version 0.1.0.4 -- | A collection of type-level operators. module Control.Type.Operator -- | A tightly binding version of -> that lets you strip -- parentheses from function types in certain spots. Example: -- --
-- f :: Maybe Int ^> String -- = -- f :: Maybe (Int -> String) --type (^>) = (->) -- | A flipped ^>. -- --
-- f :: Maybe String <^ Int -- = -- f :: Maybe (Int -> String) ---- -- Note: this is not partially applied like ^> and -- ->. type (<^) a b = (^>) b a -- | Infix application. -- --
-- f :: Either String $ Maybe Int -- = -- f :: Either String (Maybe Int) --type ($) f a = f a -- | A flipped $. -- --
-- f :: Maybe Int & Maybe -- = -- f :: Maybe (Maybe Int) --type (&) a f = f a -- | Infix application that can take two arguments in combination with -- $. -- --
-- f :: Either $$ Int ^> Int $ Int ^> Int -- = -- f :: Either (Int -> Int) (Int -> Int) --type ($$) f a = f a -- | Map several constraints over a single variable. -- --
-- a :: [Show, Read] <+> a => a -> a -- = -- a :: (Show a, Read a) => a -> a ---- | Map a constraint over several variables. -- --
-- a :: Show <=> [a, b] => a -> b -> String -- = -- a :: (Show a, Show b) => a -> b -> String --