-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Classes for the rig (sums and products) of types -- -- Classes for the rig (sums and products) of types @package type-rig @version 0.1 module Data.TypeRig.Productable -- | Composability via type product (,) and unit type (). class Invariant f => Productable f rUnit :: Productable f => f () rUnit :: (Productable f, Applicative f) => f () (<***>) :: Productable f => f a -> f b -> f (a, b) (<***>) :: (Productable f, Applicative f) => f a -> f b -> f (a, b) (***>) :: Productable f => f () -> f a -> f a (<***) :: Productable f => f a -> f () -> f a infixr 3 <*** infixr 3 ***> infixr 3 <***> instance Data.TypeRig.Productable.Productable Data.Semigroup.Internal.Endo instance Data.TypeRig.Productable.Productable m => Data.TypeRig.Productable.Productable (Control.Arrow.Kleisli m a) instance Data.TypeRig.Productable.Productable Text.ParserCombinators.ReadPrec.ReadPrec module Data.TypeRig.Summable -- | Composability via type sum Either and empty type Void. class Invariant f => Summable f rVoid :: Summable f => f Void rVoid :: (Summable f, Alternative f) => f Void (<+++>) :: Summable f => f a -> f b -> f (Either a b) (<+++>) :: (Summable f, Alternative f) => f a -> f b -> f (Either a b) infixr 2 <+++> instance Data.TypeRig.Summable.Summable Data.Semigroup.Internal.Endo instance Data.TypeRig.Summable.Summable m => Data.TypeRig.Summable.Summable (Control.Arrow.Kleisli m a) instance Data.TypeRig.Summable.Summable Text.ParserCombinators.ReadPrec.ReadPrec module Data.TypeRig.Riggable -- | Composability via a rig of types. class (Productable f, Summable f) => Riggable f rOptional :: forall a. Riggable f => f a -> f (Maybe a) rList1 :: Riggable f => f a -> f (NonEmpty a) rList :: Riggable f => f a -> f [a] instance Data.TypeRig.Riggable.Riggable Data.Semigroup.Internal.Endo instance Data.TypeRig.Riggable.Riggable m => Data.TypeRig.Riggable.Riggable (Control.Arrow.Kleisli m a) instance Data.TypeRig.Riggable.Riggable Text.ParserCombinators.ReadPrec.ReadPrec module Data.TypeRig