-- 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 and make typing less -- of a chore. @package type-operators @version 0.1.0.0 -- | A collection of type-level operators. module Control.Type.Operator -- | A tightly binding version of -> that lets you strip -- parentheses from first-class type-functions. Example: -- --
-- >>> f :: Maybe Int ^> String -- f :: Maybe (Int -> Int) --type (^>) = (->) -- | A flipped ^>. -- --
-- >>> f :: Maybe String <^ Int ---- -- 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 takes a two arguments rather than just one. -- --
-- >>> f :: Either $$ Int ^> Int $ Int -- f :: Either (Int -> Int) Int --type ($$) f a b = f a b -- | Syntactic sugar for type constraints, allowing omission of repeat type -- variables. -- --
-- >>> a :: (Num % Show) a => a -> String -- a :: (Num a, Show a) => a -> String --type (%) (c1 :: * -> Constraint) (c2 :: * -> Constraint) a = (c1 a, c2 a)