-- 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.1.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.
data ApplyTo a
-- | A wrapper for functions. Can be applied to a Functor,
-- fmap-ing the function over the inner values.
data ApplyMap a b
-- | A wrapper for functions in an applicative functor. Can be applied to
-- an Applicative functor, (<*>)-ing it on it.
data ApplyAp f a b
-- | A wrapper for Kleisli arrows. Can be applied to a Monad,
-- (>>=)-ing it on it.
data ApplyBind m a b
-- | A wrapper for Semigroup members, representing the associated
-- group action. Can be applied to another member, (<>)-ing
-- them.
data GroupAction 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.
data ChurchBool
-- | 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.
data ChurchNumeral 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.
data ChurchTuple 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