-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A class for things that can be applied
--
-- A class for things that can be applied, and utility newtypes
@package applicable
@version 0.2.0.0
-- | The Applicable class with its operator ($*). You will
-- likely need the FlexibleContexts extension to use this
-- module’s instances.
module Data.Applicable
-- | A class for types whose values can be applied. Instances are required
-- to be uniquely determined by the applied and applied-to type.
class Applicable f a b | f a -> b
-- | Apply a value to another value, producing a result.
($*) :: Applicable f a b => f -> a -> b
-- | A wrapper for values. Can be applied to a function (->),
-- applying the function to the inner value.
newtype ApplyTo a
AppTo :: a -> ApplyTo a
[unAppTo] :: ApplyTo a -> a
-- | A wrapper for functions. Can be applied to a Functor,
-- fmap-ing the function over the inner values.
newtype ApplyMap a b
AppMap :: (a -> b) -> ApplyMap a b
[unAppMap] :: ApplyMap a b -> a -> b
-- | A wrapper for functions in an applicative functor. Can be applied to
-- an Applicative functor, (<*>)-ing it on it.
newtype ApplyAp f a b
AppAp :: f (a -> b) -> ApplyAp f a b
[unAppAp] :: ApplyAp f a b -> f (a -> b)
-- | A wrapper for Kleisli arrows. Can be applied to a Monad,
-- (>>=)-ing it on it.
newtype ApplyBind m a b
AppBind :: (a -> m b) -> ApplyBind m a b
[unAppBind] :: ApplyBind m a b -> a -> m b
-- | A wrapper for Semigroup members, representing the associated
-- group action. Can be applied to another member, (<>)-ing
-- them.
newtype GroupAction a
GrpAct :: a -> GroupAction a
[unGrpAct] :: GroupAction a -> a
-- | A wrapper for Bools. When applied to a value, uses the Church
-- encoding of Booleans. The Church encoding of Booleans is a binary
-- function that returns its first argument for True, and its
-- second for False.
newtype ChurchBool
ChBool :: Bool -> ChurchBool
[unChBool] :: ChurchBool -> Bool
-- | A wrapper for natural numbers (Approximated by Integral). When
-- applied to a value, uses the Church encoding of natural numbers.
-- Church numerals represent the number _n_ as a function that take
-- another function and repeatedly applies it _n_ times.
newtype ChurchNumeral a
ChNum :: a -> ChurchNumeral a
[unChNum] :: ChurchNumeral a -> a
-- | A wrapper for tuples (,). When applied to a value, uses the
-- Church encoding of tuples. The Church encoding of tuples applies a
-- function to the values inside a tuple.
newtype ChurchTuple a b
ChTup :: (a, b) -> ChurchTuple a b
[unChTup] :: ChurchTuple a b -> (a, b)
instance GHC.Base.Functor Data.Applicable.ApplyTo
instance GHC.Read.Read a => GHC.Read.Read (Data.Applicable.ApplyTo a)
instance GHC.Show.Show a => GHC.Show.Show (Data.Applicable.ApplyTo a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Applicable.ApplyTo a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Applicable.ApplyTo a)
instance GHC.Base.Functor (Data.Applicable.ApplyMap a)
instance GHC.Base.Functor f => GHC.Base.Functor (Data.Applicable.ApplyAp f a)
instance GHC.Base.Functor m => GHC.Base.Functor (Data.Applicable.ApplyBind m a)
instance GHC.Base.Functor Data.Applicable.GroupAction
instance GHC.Read.Read a => GHC.Read.Read (Data.Applicable.GroupAction a)
instance GHC.Show.Show a => GHC.Show.Show (Data.Applicable.GroupAction a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Applicable.GroupAction a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Applicable.GroupAction a)
instance GHC.Enum.Bounded Data.Applicable.ChurchBool
instance GHC.Enum.Enum Data.Applicable.ChurchBool
instance GHC.Read.Read Data.Applicable.ChurchBool
instance GHC.Show.Show Data.Applicable.ChurchBool
instance GHC.Classes.Ord Data.Applicable.ChurchBool
instance GHC.Classes.Eq Data.Applicable.ChurchBool
instance GHC.Base.Functor Data.Applicable.ChurchNumeral
instance GHC.Read.Read a => GHC.Read.Read (Data.Applicable.ChurchNumeral a)
instance GHC.Show.Show a => GHC.Show.Show (Data.Applicable.ChurchNumeral a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Applicable.ChurchNumeral a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Applicable.ChurchNumeral a)
instance Data.Bifunctor.Bifunctor Data.Applicable.ChurchTuple
instance GHC.Base.Functor (Data.Applicable.ChurchTuple a)
instance (GHC.Read.Read a, GHC.Read.Read b) => GHC.Read.Read (Data.Applicable.ChurchTuple a b)
instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.Applicable.ChurchTuple a b)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Data.Applicable.ChurchTuple a b)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Data.Applicable.ChurchTuple a b)
instance Data.Applicable.Applicable (Data.Applicable.ChurchTuple a b) (a -> b -> c) c
instance GHC.Real.Integral a => Data.Applicable.Applicable (Data.Applicable.ChurchNumeral a) (a -> a) (a -> a)
instance Data.Applicable.Applicable Data.Applicable.ChurchBool a (a -> a)
instance GHC.Base.Semigroup a => Data.Applicable.Applicable (Data.Applicable.GroupAction a) a a
instance GHC.Base.Monad m => Data.Applicable.Applicable (Data.Applicable.ApplyBind m a b) (m a) (m b)
instance GHC.Base.Applicative f => Data.Applicable.Applicable (Data.Applicable.ApplyAp f a b) (f a) (f b)
instance GHC.Base.Functor f => Data.Applicable.Applicable (Data.Applicable.ApplyMap a b) (f a) (f b)
instance Data.Applicable.Applicable (Data.Applicable.ApplyTo a) (a -> b) b
instance Data.Applicable.Applicable (a -> b) a b