-- 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.4.1.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 value.
newtype ApplyTo a
AppTo :: a -> ApplyTo a
[unAppTo] :: ApplyTo a -> a
-- | A wrapper for functions wrapped in a Functor. Can be applied to
-- a value, fmap-ing the application over the Functor.
--
-- This nomenclature is borrowed from relude.
newtype FlapApply f a b
FlApp :: f (a -> b) -> FlapApply f a b
[unFlApp] :: FlapApply f a b -> f (a -> b)
-- | A wrapper for functions wrapped in a Bifunctor. Can be applied
-- to a value, bimap-ing the application over both fields.
newtype BiFlapApply f a b c
BiFlApp :: f (a -> b) (a -> c) -> BiFlapApply f a b c
[unBiFlApp] :: BiFlapApply f a b c -> f (a -> b) (a -> c)
-- | 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 Data.Traversable.Traversable Data.Applicable.ApplyTo
instance Data.Foldable.Foldable Data.Applicable.ApplyTo
instance GHC.Base.Functor Data.Applicable.ApplyTo
instance GHC.Ix.Ix a => GHC.Ix.Ix (Data.Applicable.ApplyTo a)
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 Data.Data.Data a => Data.Data.Data (Data.Applicable.ApplyTo a)
instance GHC.Generics.Generic (Data.Applicable.ApplyTo a)
instance GHC.Base.Functor f => GHC.Base.Functor (Data.Applicable.FlapApply f a)
instance GHC.Generics.Generic (Data.Applicable.FlapApply f a b)
instance GHC.Generics.Generic (Data.Applicable.BiFlapApply f a b c)
instance GHC.Base.Functor (Data.Applicable.ApplyMap a)
instance GHC.Generics.Generic (Data.Applicable.ApplyMap a b)
instance GHC.Base.Functor f => GHC.Base.Functor (Data.Applicable.ApplyAp f a)
instance GHC.Generics.Generic (Data.Applicable.ApplyAp f a b)
instance GHC.Base.Functor m => GHC.Base.Functor (Data.Applicable.ApplyBind m a)
instance GHC.Generics.Generic (Data.Applicable.ApplyBind m a b)
instance Data.Traversable.Traversable Data.Applicable.GroupAction
instance Data.Foldable.Foldable Data.Applicable.GroupAction
instance GHC.Base.Functor Data.Applicable.GroupAction
instance GHC.Ix.Ix a => GHC.Ix.Ix (Data.Applicable.GroupAction a)
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 Data.Data.Data a => Data.Data.Data (Data.Applicable.GroupAction a)
instance GHC.Generics.Generic (Data.Applicable.GroupAction a)
instance GHC.Ix.Ix 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 Data.Data.Data Data.Applicable.ChurchBool
instance GHC.Generics.Generic Data.Applicable.ChurchBool
instance Data.Traversable.Traversable Data.Applicable.ChurchNumeral
instance Data.Foldable.Foldable Data.Applicable.ChurchNumeral
instance GHC.Base.Functor Data.Applicable.ChurchNumeral
instance GHC.Ix.Ix a => GHC.Ix.Ix (Data.Applicable.ChurchNumeral a)
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.Data.Data a => Data.Data.Data (Data.Applicable.ChurchNumeral a)
instance GHC.Generics.Generic (Data.Applicable.ChurchNumeral a)
instance Data.Bifunctor.Bifunctor Data.Applicable.ChurchTuple
instance Data.Traversable.Traversable (Data.Applicable.ChurchTuple a)
instance Data.Foldable.Foldable (Data.Applicable.ChurchTuple a)
instance GHC.Base.Functor (Data.Applicable.ChurchTuple a)
instance (GHC.Ix.Ix a, GHC.Ix.Ix b) => GHC.Ix.Ix (Data.Applicable.ChurchTuple a b)
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.Data.Data a, Data.Data.Data b) => Data.Data.Data (Data.Applicable.ChurchTuple a b)
instance GHC.Generics.Generic (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.Bifunctor.Bifunctor f => Data.Applicable.Applicable (Data.Applicable.BiFlapApply f a b c) a (f b c)
instance GHC.Base.Functor f => Data.Applicable.Applicable (Data.Applicable.FlapApply f a b) a (f b)
instance Data.Applicable.Applicable (Data.Applicable.ApplyTo a) (a -> b) b
instance Data.Applicable.Applicable (a -> b) a b