Right to left function composition.
(f . g) x = f (g x)f . id = f = id . fExamples
map ((*2) . length) [[], [0, 1, 2], [0]][0,6,2]
foldr (.) id [(+1), (*3), (^3)] 225
let (...) = (.).(.) in ((*2)...(+)) 5 1030
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05
Modulerebase-1.21.2Haskell2010
Right to left function composition.
(f . g) x = f (g x)f . id = f = id . fmap ((*2) . length) [[], [0, 1, 2], [0]][0,6,2]
foldr (.) id [(+1), (*3), (^3)] 225
let (...) = (.).(.) in ((*2)...(+)) 5 1030
A functor with application, providing operations to
A minimal complete definition must include implementations of pure and of either <*> or liftA2. If it defines both, then they must behave the same as their default definitions:
(<*>) = liftA2 idliftA2 f x y = f Prelude.<$> x <*> yFurther, any definition must satisfy the following:
pure id <*> v = vpure (.) <*> u <*> v <*> w = u <*> (v <*> w)pure f <*> pure x = pure (f x)u <*> pure y = pure ($ y) <*> uThe other methods have the following default definitions, which may be overridden with equivalent specialized implementations:
As a consequence of these laws, the Functor instance for f will satisfy
It may be useful to note that supposing
forall x y. p (q x y) = f x . g yit follows from the above that
liftA2 p (liftA2 q u v) = liftA2 f u . liftA2 g vIf f is also a Monad, it should satisfy
(which implies that pure and <*> satisfy the applicative functor laws).
pure :: a -> f aLift a value into the Structure.
pure 1 :: Maybe IntJust 1
pure 'z' :: [Char]"z"
pure (pure ":D") :: Maybe [String]Just [":D"]
(<*>) :: f (a -> b) -> f a -> f binfixl 4Sequential application.
A few functors support an implementation of <*> that is more efficient than the default one.
Used in combination with , (Data.Functor.<$>) can be used to build a record.(<*>)
data MyState = MyState {arg1 :: Foo, arg2 :: Bar, arg3 :: Baz}produceFoo :: Applicative f => f FooproduceBar :: Applicative f => f BarproduceBaz :: Applicative f => f Baz
mkState :: Applicative f => f MyStatemkState = MyState <$> produceFoo <*> produceBar <*> produceBaz
liftA2 :: (a -> b -> c) -> f a -> f b -> f cLift a binary function to actions.
Some functors support an implementation of liftA2 that is more efficient than the default one. In particular, if fmap is an expensive operation, it is likely better to use liftA2 than to fmap over the structure and then use <*>.
This became a typeclass method in 4.10.0.0. Prior to that, it was a function defined in terms of <*> and fmap.
liftA2 (,) (Just 3) (Just 5)Just (3,5)
liftA2 (+) [1, 2, 3] [4, 5, 6][5,6,7,6,7,8,7,8,9]
(*>) :: f a -> f b -> f binfixl 4Sequence actions, discarding the value of the first argument.
If used in conjunction with the Applicative instance for Maybe, you can chain Maybe computations, with a possible "early return" in case of Nothing.
Just 2 *> Just 3Just 3
Nothing *> Just 3Nothing
Of course a more interesting use case would be to have effectful computations instead of just returning pure values.
import Data.Charimport GHC.Internal.Text.ParserCombinators.ReadPlet p = string "my name is " *> munch1 isAlpha <* eofreadP_to_S p "my name is Simon"[("Simon","")]
(<*) :: f a -> f b -> f ainfixl 4Sequence actions, discarding the value of the second argument.
Applicative ComplexDefined in base-4.20.2.0 · Data.ComplexApplicative FirstDefined in base-4.20.2.0 · Data.SemigroupApplicative LastDefined in base-4.20.2.0 · Data.SemigroupApplicative MaxDefined in base-4.20.2.0 · Data.SemigroupApplicative MinDefined in base-4.20.2.0 · Data.SemigroupApplicative GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalApplicative PutMDefined in binary-0.8.9.3 · Data.Binary.PutApplicative PutDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalApplicative SeqDefined in containers-0.7 · Data.Sequence.InternalApplicative TreeDefined in containers-0.7 · Data.TreeApplicative DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalApplicative DListDefined in dlist-1.0 · Data.DList.InternalApplicative NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseApplicative STMDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncApplicative IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityApplicative FirstDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidApplicative LastDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidApplicative DownDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdApplicative DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative ZipListDefined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListf <$> ZipList xs1 <*> ... <*> ZipList xsN
= ZipList (zipWithN f xs1 ... xsN)where zipWithN refers to the zipWith function of the appropriate arity
(zipWith, zipWith3, zipWith4, ...). For example:
(\a b c -> stimes c [a, b]) <$> ZipList "abcd" <*> ZipList "567" <*> ZipList [1..]
= ZipList (zipWith3 (\a b c -> stimes c [a, b]) "abcd" "567" [1..])
= ZipList {getZipList = ["a5","b6b6","c7c7c7"]}Applicative NoIODefined in ghc-internal-9.1003.0 · GHC.Internal.GHCiApplicative Par1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsApplicative MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseApplicative PDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPApplicative ReadPDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPApplicative ReadPrecDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPrecApplicative SoloDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseApplicative IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseApplicative ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayApplicative SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayApplicative STMDefined in stm-2.5.3.1 · Control.Sequential.STMApplicative PprMDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.PprLibApplicative QDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxApplicative VectorDefined in vector-0.13.2.0 · Data.VectorApplicative IdDefined in vector-0.13.2.0 · Data.Vector.Fusion.UtilApplicative VectorDefined in vector-0.13.2.0 · Data.Vector.StrictApplicative BoxDefined in vector-stream-0.1.0.1 · Data.Stream.MonadicApplicative []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseRepresentable f => Applicative (Co f)Defined in adjunctions-4.4.3 · Data.Functor.RepAlternative f => Applicative (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeApplicative ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyApplicative U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsApplicative (SetM s)Defined in containers-0.7 · Data.GraphApplicative (State s)Defined in containers-0.7 · Utils.Containers.Internal.StateApplicative (Alt f)Defined in free-5.2 · Control.Alternative.FreeApplicative (AltF f)Defined in free-5.2 · Control.Alternative.FreeApplicative (Alt f)Defined in free-5.2 · Control.Alternative.Free.FinalApplicative (Ap f)Defined in free-5.2 · Control.Applicative.FreeApplicative (Ap f)Defined in free-5.2 · Control.Applicative.Free.FastApplicative (Ap f)Defined in free-5.2 · Control.Applicative.Free.FinalApplicative (F f)Defined in free-5.2 · Control.Monad.Free.ChurchApplicative (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpApplicative (Either e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.EitherApplicative (StateL s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsApplicative (StateR s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsApplicative (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.STApplicative (StateL s)Defined in keys-3.12.3 · Data.KeyApplicative (StateR s)Defined in keys-3.12.3 · Data.KeyApplicative (Select f)Defined in selective-0.7.0.1 · Control.Selective.FreeApplicative (Select f)Defined in selective-0.7.0.1 · Control.Selective.Rigid.FreerApplicative (IParser t)Defined in text-2.1.3 · Data.Text.Internal.ReadApplicative f => Applicative (Free f)Defined in free-5.2 · Control.Monad.Free.ApApplicative f => Applicative (Coyoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.CoyonedaApplicative f => Applicative (Yoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.YonedaApplicative f => Applicative (SelectA f)Defined in selective-0.7.0.1 · Control.SelectiveApplicative f => Applicative (SelectM f)Defined in selective-0.7.0.1 · Control.SelectiveApplicative f => Applicative (WrappedApplicative f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApplicative f => Applicative (Lift f)Defined in transformers-0.6.1.1 · Control.Applicative.LiftA combination is Pure only if both parts are.
Functor f => Applicative (Free f)Defined in free-5.2 · Control.Monad.FreeFunctor f => Applicative (Select f)Defined in selective-0.7.0.1 · Control.Selective.Rigid.FreeMonad m => Applicative (WrappedMonad m)Defined in base-4.20.2.0 · Control.ApplicativeMonad m => Applicative (CatchT m)Defined in exceptions-0.10.9 · Control.Monad.Catch.PureMonad m => Applicative (IterT m)Defined in free-5.2 · Control.Monad.Trans.IterMonoid a => Applicative (Tuple2 a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid m => Applicative (Over m)Defined in selective-0.7.0.1 · Control.SelectiveMonoid m => Applicative (Under m)Defined in selective-0.7.0.1 · Control.SelectiveMonoid m => Applicative (Over m)Defined in selective-0.7.0.1 · Control.Selective.MultiMonoid m => Applicative (Under m)Defined in selective-0.7.0.1 · Control.Selective.MultiSemigroup e => Applicative (Validation e)Defined in either-5.0.3 · Data.Either.ValidationSemigroup e => Applicative (Validation e)Defined in selective-0.7.0.1 · Control.SelectiveArrow a => Applicative (ArrowMonad a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowApply f => Applicative (MaybeApply f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Functor m, Monad m) => Applicative (MaybeT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.MaybeBiapplicative p => Applicative (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixBiapplicative p => Applicative (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinApplicative (Mag a b)Defined in bifunctors-5.6.2 · Data.BiapplicativeApplicative (FT f m)Defined in free-5.2 · Control.Monad.Trans.Free.ChurchApplicative (Bazaar a b)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingApplicative (Tagged s)Defined in tagged-0.8.9 · Data.TaggedApplicative (bi a) => Applicative (Biap bi a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapApplicative (t m) => Applicative (LiftingAccum t m)Defined in mtl-2.3.1 · Control.Monad.AccumApplicative (t m) => Applicative (LiftingSelect t m)Defined in mtl-2.3.1 · Control.Monad.SelectApplicative f => Applicative (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidApplicative f => Applicative (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Applicative (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsApplicative f => Applicative (Indexing f)Defined in indexed-traversable-0.1.4 · WithIndexApplicative f => Applicative (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantApplicative f => Applicative (Density f)Defined in kan-extensions-5.2.7 · Control.Comonad.DensityApplicative f => Applicative (Static f a)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.StaticApplicative f => Applicative (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsApply f-actions in the reverse order.
Applicative f => Applicative (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Applicative g => Applicative (ApF f g)Defined in free-5.2 · Control.Applicative.Trans.FreeApplicative g => Applicative (ApT f g)Defined in free-5.2 · Control.Applicative.Trans.FreeApplicative m => Applicative (Kleisli m a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowApplicative m => Applicative (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityApplicative m => Applicative (ReaderT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ReaderApplicative w => Applicative (TracedT m w)Defined in comonad-5.0.9 · Control.Comonad.Trans.TracedMonad m => Applicative (StateT s m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsMonoid a => Applicative (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantMonoid m => Applicative (Const m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstArrow a => Applicative (WrappedArrow a b)Defined in base-4.20.2.0 · Control.ApplicativeSelective f => Applicative (ComposeEither f e)Defined in selective-0.7.0.1 · Control.SelectiveSelective f => Applicative (ExceptT e f)Defined in selective-0.7.0.1 · Control.Selective.Trans.Except(Representable f, Applicative m) => Applicative (ReaderT f m)Defined in adjunctions-4.4.3 · Control.Monad.Representable.Reader(Representable g, Functor m, Monad m) => Applicative (StateT g m)Defined in adjunctions-4.4.3 · Control.Monad.Representable.State(Alternative f, Applicative w) => Applicative (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Applicative (Rep p), Representable p) => Applicative (Prep p)Defined in profunctors-5.6.3 · Data.Profunctor.Rep(Applicative f, Applicative g) => Applicative (Day f g)Defined in kan-extensions-5.2.7 · Data.Functor.Day(Applicative f, Applicative g) => Applicative (ComposeTraversable f g)Defined in selective-0.7.0.1 · Control.Selective(Applicative f, Applicative m) => Applicative (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Applicative f, Monad f) => Applicative (WhenMissing f x)Defined in containers-0.7 · Data.IntMap.InternalEquivalent to ReaderT k (ReaderT x (MaybeT f)).
(Applicative w, Monoid (Rep g), Representable g) => Applicative (StoreT g w)Defined in adjunctions-4.4.3 · Control.Comonad.Representable.Store(Applicative w, Monoid s) => Applicative (StoreT s w)Defined in comonad-5.0.9 · Control.Comonad.Trans.Store(Functor f, Monad m) => Applicative (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free(Functor g, g ~ h) => Applicative (Curried g h)Defined in kan-extensions-5.2.7 · Data.Functor.Day.Curried(Functor m, Monad m) => Applicative (ExceptT e m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Except(Functor m, Monad m) => Applicative (SelectT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Select(Functor m, Monad m) => Applicative (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.Lazy(Functor m, Monad m) => Applicative (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.Strict(Functor m, Monad m) => Applicative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.CPS(Monoid a, Monoid b) => Applicative (Tuple3 a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Base(Monoid e, Applicative m) => Applicative (EnvT e m)Defined in comonad-5.0.9 · Control.Comonad.Trans.Env(Monoid w, Applicative m) => Applicative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, Applicative m) => Applicative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Strict(Monoid w, Functor m, Monad m) => Applicative (AccumT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Accum(Generic1 f, Applicative (Rep1 f)) => Applicative (Generically1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Profunctor p, Arrow p) => Applicative (Closure p a)Defined in profunctors-5.6.3 · Data.Profunctor.Closed(Profunctor p, Arrow p) => Applicative (Tambara p a)Defined in profunctors-5.6.3 · Data.Profunctor.StrongComonad w => Applicative (ContsT r w m)Defined in adjunctions-4.4.3 · Control.Monad.Trans.ContsComonad w => Applicative (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.CoApplicative (Cokleisli w a)Defined in comonad-5.0.9 · Control.ComonadApplicative (Codensity f)Defined in kan-extensions-5.2.7 · Control.Monad.CodensityApplicative (Costar f a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesApplicative (ContT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ContApplicative ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseApplicative f => Applicative (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesMonoid c => Applicative (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Adjunction f g, Monad m) => Applicative (AdjointT f g m)Defined in adjunctions-4.4.3 · Control.Monad.Trans.Adjoint(Adjunction f g, Comonad w) => Applicative (AdjointT f g w)Defined in adjunctions-4.4.3 · Control.Monad.Trans.Contravariant.Adjoint(Applicative f, Applicative g) => Applicative (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Applicative f, Applicative g) => Applicative (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Applicative f, Monad f) => Applicative (WhenMissing f k x)Defined in containers-0.7 · Data.Map.InternalEquivalent to ReaderT k (ReaderT x (MaybeT f)) .
(Functor g, Applicative h) => Applicative (Lan g h)Defined in kan-extensions-5.2.7 · Data.Functor.Kan.Lan(Monad f, Applicative f) => Applicative (WhenMatched f x y)Defined in containers-0.7 · Data.IntMap.InternalEquivalent to ReaderT Key (ReaderT x (ReaderT y (MaybeT f)))
(Monoid a, Monoid b, Monoid c) => Applicative (Tuple4 a b c)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseApplicative f => Applicative (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Applicative f, Applicative g) => Applicative (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Applicative f, Applicative g) => Applicative (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.CPS(Monad f, Applicative f) => Applicative (WhenMatched f k x y)Defined in containers-0.7 · Data.Map.InternalEquivalent to ReaderT k (ReaderT x (ReaderT y (MaybeT f)))
(Monoid w, Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.StrictThe Monad class defines the basic operations over a monad,
a concept from a branch of mathematics known as category theory.
From the perspective of a Haskell programmer, however, it is best to
think of a monad as an abstract datatype of actions.
Haskell's do expressions provide a convenient syntax for writing
monadic expressions.
Instances of Monad should satisfy the following:
Furthermore, the Monad and Applicative operations should relate as follows:
The above laws imply:
and that pure and (<*>) satisfy the applicative functor laws.
The instances of Monad for GHC.List.List, Maybe and System.IO.IO
defined in the Prelude satisfy these laws.
(>>=) :: m a -> (a -> m b) -> m binfixl 1Sequentially compose two actions, passing any value produced by the first as an argument to the second.
'as >>= bs' can be understood as the do expression
do a <- as
bs a
An alternative name for this function is 'bind', but some people may refer to it as 'flatMap', which results from it being equivialent to
\x f -> join (fmap f x) :: Monad m => m a -> (a -> m b) -> m bwhich can be seen as mapping a value with
Monad m => m a -> m (m b) and then 'flattening' m (m b) to m b using join.
(>>) :: m a -> m b -> m binfixl 1Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in imperative languages.
'as >> bs' can be understood as the do expression
do as
bs
or in terms of as(>>=)
as >>= const bsreturn :: a -> m aInject a value into the monadic type. This function should not be different from its default implementation as pure. The justification for the existence of this function is merely historic.
Monad ComplexDefined in base-4.20.2.0 · Data.ComplexMonad FirstDefined in base-4.20.2.0 · Data.SemigroupMonad LastDefined in base-4.20.2.0 · Data.SemigroupMonad MaxDefined in base-4.20.2.0 · Data.SemigroupMonad MinDefined in base-4.20.2.0 · Data.SemigroupMonad GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalMonad PutMDefined in binary-0.8.9.3 · Data.Binary.PutMonad PutDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalMonad SeqDefined in containers-0.7 · Data.Sequence.InternalMonad TreeDefined in containers-0.7 · Data.TreeMonad DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalMonad DListDefined in dlist-1.0 · Data.DList.InternalMonad NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonad STMDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncMonad IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityMonad FirstDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonad LastDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonad DownDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdMonad DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonad ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonad SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonad NoIODefined in ghc-internal-9.1003.0 · GHC.Internal.GHCiMonad Par1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonad MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonad PDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPMonad ReadPDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPMonad ReadPrecDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPrecMonad SoloDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonad IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonad ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonad SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonad STMDefined in stm-2.5.3.1 · Control.Sequential.STMMonad PprMDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.PprLibMonad QDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxMonad VectorDefined in vector-0.13.2.0 · Data.VectorMonad IdDefined in vector-0.13.2.0 · Data.Vector.Fusion.UtilMonad VectorDefined in vector-0.13.2.0 · Data.Vector.StrictMonad BoxDefined in vector-stream-0.1.0.1 · Data.Stream.MonadicMonad []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseRepresentable f => Monad (Co f)Defined in adjunctions-4.4.3 · Data.Functor.RepAlternative f => Monad (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeApplicative f => Monad (Free f)Defined in free-5.2 · Control.Monad.Free.ApFunctor f => Monad (Free f)Defined in free-5.2 · Control.Monad.FreeMonad ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonad U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonad (SetM s)Defined in containers-0.7 · Data.GraphMonad (State s)Defined in containers-0.7 · Utils.Containers.Internal.StateMonad (F f)Defined in free-5.2 · Control.Monad.Free.ChurchMonad (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpMonad (Either e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.EitherMonad (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.STMonad (IParser t)Defined in text-2.1.3 · Data.Text.Internal.ReadMonad f => Monad (SelectM f)Defined in selective-0.7.0.1 · Control.SelectiveMonad m => Monad (WrappedMonad m)Defined in base-4.20.2.0 · Control.ApplicativeMonad m => Monad (CatchT m)Defined in exceptions-0.10.9 · Control.Monad.Catch.PureMonad m => Monad (IterT m)Defined in free-5.2 · Control.Monad.Trans.IterMonad m => Monad (Coyoneda m)Defined in kan-extensions-5.2.7 · Data.Functor.CoyonedaMonad m => Monad (Yoneda m)Defined in kan-extensions-5.2.7 · Data.Functor.YonedaMonad m => Monad (MaybeT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.MaybeMonoid a => Monad (Tuple2 a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseArrowApply a => Monad (ArrowMonad a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowMonad (FT f m)Defined in free-5.2 · Control.Monad.Trans.Free.ChurchMonad (Tagged s)Defined in tagged-0.8.9 · Data.TaggedMonad (bi a) => Monad (Biap bi a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapMonad (t m) => Monad (LiftingAccum t m)Defined in mtl-2.3.1 · Control.Monad.AccumMonad (t m) => Monad (LiftingSelect t m)Defined in mtl-2.3.1 · Control.Monad.SelectMonad f => Monad (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonad f => Monad (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonad f => Monad (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonad m => Monad (Kleisli m a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowMonad m => Monad (StateT s m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsMonad m => Monad (WrappedFunctor m)Defined in invariant-0.6.4 · Data.Functor.InvariantMonad m => Monad (ExceptT e m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ExceptMonad m => Monad (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonad m => Monad (ReaderT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ReaderMonad m => Monad (SelectT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.SelectMonad m => Monad (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.LazyMonad m => Monad (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.StrictMonad m => Monad (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.CPSMonad m => Monad (Reverse m)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
(Representable f, Monad m) => Monad (ReaderT f m)Defined in adjunctions-4.4.3 · Control.Monad.Representable.Reader(Representable g, Monad m) => Monad (StateT g m)Defined in adjunctions-4.4.3 · Control.Monad.Representable.State(Alternative f, Monad w) => Monad (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Applicative f, Monad f) => Monad (WhenMissing f x)Defined in containers-0.7 · Data.IntMap.InternalEquivalent to ReaderT k (ReaderT x (MaybeT f)).
(Applicative f, Monad m) => Monad (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Functor f, Monad m) => Monad (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free(Monad (Rep p), Representable p) => Monad (Prep p)Defined in profunctors-5.6.3 · Data.Profunctor.Rep(Monoid a, Monoid b) => Monad (Tuple3 a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Base(Monoid w, Functor m, Monad m) => Monad (AccumT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Accum(Monoid w, Monad m) => Monad (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, Monad m) => Monad (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Strict(Selective f, Monad f) => Monad (ExceptT e f)Defined in selective-0.7.0.1 · Control.Selective.Trans.ExceptComonad w => Monad (ContsT r w m)Defined in adjunctions-4.4.3 · Control.Monad.Trans.ContsComonad w => Monad (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.CoMonad (Cokleisli w a)Defined in comonad-5.0.9 · Control.ComonadMonad (Codensity f)Defined in kan-extensions-5.2.7 · Control.Monad.CodensityMonad (Costar f a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesMonad (ContT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ContMonad ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonad f => Monad (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Adjunction f g, Monad m) => Monad (AdjointT f g m)Defined in adjunctions-4.4.3 · Control.Monad.Trans.Adjoint(Adjunction f g, Comonad w) => Monad (AdjointT f g w)Defined in adjunctions-4.4.3 · Control.Monad.Trans.Contravariant.Adjoint(Applicative f, Monad f) => Monad (WhenMissing f k x)Defined in containers-0.7 · Data.Map.InternalEquivalent to ReaderT k (ReaderT x (MaybeT f)) .
(Monad f, Applicative f) => Monad (WhenMatched f x y)Defined in containers-0.7 · Data.IntMap.InternalEquivalent to ReaderT Key (ReaderT x (ReaderT y (MaybeT f)))
(Monad f, Monad g) => Monad (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Monad f, Monad g) => Monad (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c) => Monad (Tuple4 a b c)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonad f => Monad (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonad m => Monad (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.CPS(Monad f, Applicative f) => Monad (WhenMatched f k x y)Defined in containers-0.7 · Data.Map.InternalEquivalent to ReaderT k (ReaderT x (ReaderT y (MaybeT f)))
(Monoid w, Monad m) => Monad (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, Monad m) => Monad (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.StrictThe Maybe type encapsulates an optional value. A value of type
Maybe a either contains a value of type a (represented as Just a),
or it is empty (represented as Nothing). Using Maybe is a good way to
deal with errors or exceptional cases without resorting to drastic
measures such as error.
The Maybe type is also a monad. It is a simple kind of error monad, where all errors are represented by Nothing. A richer error monad can be built using the Either type.
Monad MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFail MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FailApplicative MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFoldable MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadPlus MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadZip MaybeDefined in base-4.20.2.0 · Control.Monad.ZipEq1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesOrd1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesRead1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesShow1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesNFData1 MaybeDefined in deepseq-1.5.0.0 · Control.DeepSeqMonadThrow MaybeDefined in exceptions-0.10.9 · Control.Monad.CatchHashable1 MaybeDefined in hashable-1.4.7.0 · Data.Hashable.ClassAlt MaybeDefined in semigroupoids-6.0.1 · Data.Functor.AltApply MaybeDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind MaybeDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend MaybeDefined in semigroupoids-6.0.1 · Data.Functor.ExtendPlus MaybeDefined in semigroupoids-6.0.1 · Data.Functor.PlusInvariant MaybeDefined in invariant-0.6.4 · Data.Functor.InvariantSelective MaybeDefined in selective-0.7.0.1 · Control.SelectiveFoldableWithKey MaybeDefined in keys-3.12.3 · Data.KeyIndexable MaybeDefined in keys-3.12.3 · Data.KeyKeyed MaybeDefined in keys-3.12.3 · Data.KeyLookup MaybeDefined in keys-3.12.3 · Data.KeyTraversableWithKey MaybeDefined in keys-3.12.3 · Data.KeyZip MaybeDefined in keys-3.12.3 · Data.KeyZipWithKey MaybeDefined in keys-3.12.3 · Data.KeyPointed MaybeDefined in pointed-5.0.4 · Data.PointedGeneric1 MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadError () MaybeDefined in mtl-2.3.1 · Control.Monad.Error.ClassFoldableWithIndex () MaybeDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex () MaybeDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex () MaybeDefined in indexed-traversable-0.1.4 · WithIndexMonadBase Maybe MaybeDefined in transformers-base-0.4.6 · Control.Monad.BaseComonadCofree Maybe NonEmptyDefined in free-5.2 · Control.Comonad.Cofree.ClassLift a => Lift (Maybe a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq a => Eq (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeData a => Data (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd a => Ord (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeRead a => Read (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow a => Show (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ShowGeneric (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup a => Monoid (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseLift a semigroup into Maybe forming a Monoid according to
http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be
turned into a monoid simply by adjoining an element e not in S
and defining e*e = e and e*s = s = s*e for all s ∈ S."
Since 4.11.0: constraint on inner a value generalised from
Monoid to Semigroup.
SingKind a => SingKind (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsNFData a => NFData (Maybe a)Defined in deepseq-1.5.0.0 · Control.DeepSeqPretty a => Pretty (Maybe a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty a => Pretty (Maybe a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassFinite a => Finite (Maybe a)Defined in random-1.2.1.3 · System.Random.GFiniteBinary a => Binary (Maybe a)Defined in binary-0.8.9.3 · Data.Binary.ClassHashable a => Hashable (Maybe a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassDefault (Maybe a)Defined in data-default-0.8.0.1 · Data.Default.InternalSingI 'NothingDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSingI a2 => SingI ('Just a2)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (Maybe a) = D1 ('MetaData "Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons "Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons "Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 Maybe = D1 ('MetaData "Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons "Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons "Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype DemoteRep (Maybe a) = Maybe (DemoteRep a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata SingDefined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Key Maybe = ()Defined in keys-3.12.3 · Data.KeyBounded BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEnum BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEq BoolDefined in ghc-prim-0.12.0 · GHC.ClassesData BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd BoolDefined in ghc-prim-0.12.0 · GHC.ClassesRead BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowIx BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.IxGeneric BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsBits BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.BitsInterpret Bool as 1-bit bit-field
FiniteBits BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.BitsStorable BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.StorableSingKind BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsNFData BoolDefined in deepseq-1.5.0.0 · Control.DeepSeqPretty BoolDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty BoolDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassRandom BoolDefined in random-1.2.1.3 · System.RandomFinite BoolDefined in random-1.2.1.3 · System.Random.GFiniteUniform BoolDefined in random-1.2.1.3 · System.Random.InternalUniformRange BoolDefined in random-1.2.1.3 · System.Random.InternalBinary BoolDefined in binary-0.8.9.3 · Data.Binary.ClassHashable BoolDefined in hashable-1.4.7.0 · Data.Hashable.ClassUnbox BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseDefault BoolDefined in data-default-0.8.0.1 · Data.Default.InternalLift BoolDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxSingI 'FalseDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSingI 'TrueDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsIArray UArray BoolDefined in array-0.5.8.0 · Data.Array.BaseVector Vector BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMVector MVector BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Bool IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Bool (ST s)Defined in array-0.5.8.0 · Data.Array.Basetype Rep Bool = D1 ('MetaData "Bool"
"GHC.Types"
"ghc-prim"
'False) (C1 ('MetaCons "False"
'PrefixI 'False) U1 :+: C1 ('MetaCons "True"
'PrefixI 'False) U1)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype DemoteRep Bool = BoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata SingDefined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata MVector s BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseThe character type Char represents Unicode codespace and its elements are code points as in definitions D9 and D10 of the Unicode Standard.
Character literals in Haskell are single-quoted: 'Q', 'Я' or 'Ω'.
To represent a single quote itself use '\'', and to represent a backslash
use '\\'. The full grammar can be found in the section 2.6 of the
Haskell 2010 Language Report.
To specify a character by its code point one can use decimal, hexadecimal
or octal notation: '\65', '\x41' and '\o101' are all alternative forms
of 'A'. The largest code point is '\x10ffff'.
There is a special escape syntax for ASCII control characters:
Escape | Alternatives | Meaning |
|---|---|---|
|
| null character |
|
| start of heading |
|
| start of text |
|
| end of text |
|
| end of transmission |
|
| enquiry |
|
| acknowledge |
|
,
| bell (alert) |
|
,
| backspace |
|
,
| horizontal tab |
|
,
| line feed (new line) |
|
,
| vertical tab |
|
,
| form feed |
|
,
| carriage return |
|
| shift out |
|
| shift in |
|
| data link escape |
|
| device control 1 |
|
| device control 2 |
|
| device control 3 |
|
| device control 4 |
|
| negative acknowledge |
|
| synchronous idle |
|
| end of transmission block |
|
| cancel |
|
| end of medium |
|
| substitute |
|
| escape |
|
| file separator |
|
| group separator |
|
| record separator |
|
| unit separator |
|
,
| space |
|
| delete |
Bounded CharDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEnum CharDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEq CharDefined in ghc-prim-0.12.0 · GHC.ClassesData CharDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd CharDefined in ghc-prim-0.12.0 · GHC.ClassesRead CharDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow CharDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowIx CharDefined in ghc-internal-9.1003.0 · GHC.Internal.IxStorable CharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.StorableIsChar CharDefined in base-4.20.2.0 · Text.PrintfPrintfArg CharDefined in base-4.20.2.0 · Text.PrintfNFData CharDefined in deepseq-1.5.0.0 · Control.DeepSeqPretty CharDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty CharDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassRandom CharDefined in random-1.2.1.3 · System.RandomFinite CharDefined in random-1.2.1.3 · System.Random.GFiniteUniform CharDefined in random-1.2.1.3 · System.Random.InternalUniformRange CharDefined in random-1.2.1.3 · System.Random.InternalBinary CharDefined in binary-0.8.9.3 · Data.Binary.ClassHashable CharDefined in hashable-1.4.7.0 · Data.Hashable.ClassPrim CharDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseLift CharDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxTestCoercion SCharDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsTestEquality SCharDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsIArray UArray CharDefined in array-0.5.8.0 · Data.Array.BaseVector Vector CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMVector MVector CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Char IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Char)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldable UCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable UCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Char (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Char)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsShow (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (URec Char p) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just "uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (URec Char) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just "uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata URec CharDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsUsed for marking occurrences of Char#
type Compare a b = CmpChar a bDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.Orddata MVector s CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseThe Eq class defines equality (==) and inequality (/=). All the basic datatypes exported by the Prelude are instances of Eq, and Eq may be derived for any datatype whose constituents are also instances of Eq.
The Haskell Report defines no laws for Eq. However, instances are encouraged to follow these properties:
Eq ByteArrayDefined in base-4.20.2.0 · Data.Array.ByteEq TimeoutDefined in base-4.20.2.0 · System.TimeoutEq BiFunDefined in bifunctors-5.6.2 · Data.Bifunctor.THEq OptionsDefined in bifunctors-5.6.2 · Data.Bifunctor.THEq StarKindStatusDefined in bifunctors-5.6.2 · Data.Bifunctor.TH.InternalEq FloatingDecimalDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.D2SEq FloatingDecimalDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.F2SEq ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeEq ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalEq ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalEq IntSetDefined in containers-0.7 · Data.IntSet.InternalEq BigNatDefined in ghc-bignum-1.3 · GHC.Num.BigNatEq IntegerDefined in ghc-bignum-1.3 · GHC.Num.IntegerEq NaturalDefined in ghc-bignum-1.3 · GHC.Num.NaturalEq ForeignSrcLangDefined in ghc-boot-th-9.10.3 · GHC.ForeignSrcLang.TypeEq ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeEq VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseEq ByteOrderDefined in ghc-internal-9.1003.0 · GHC.Internal.ByteOrderEq ClosureTypeDefined in ghc-internal-9.1003.0 · GHC.Internal.ClosureTypesEq BlockReasonDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncEq ThreadIdDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncEq ThreadStatusDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncEq ConstrDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataEquality of constructors
Eq ConstrRepDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataEq DataRepDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataEq FixityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataEq AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq SomeTypeRepDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Typeable.InternalEq UniqueDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.UniqueEq VersionDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.VersionEq ControlMessageDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.ControlEq EPollFdDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.EPollEq EventTypeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.EPollEq EventDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesEq EventLifetimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesEq LifetimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesEq FdKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.ManagerEq StateDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.ManagerEq EventDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.PollEq TimeoutKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.TimeOutEq StateDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.TimerManagerEq UniqueDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.UniqueEq ErrorCallDefined in ghc-internal-9.1003.0 · GHC.Internal.ExceptionEq ArithExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.Exception.TypeEq SpecConstrAnnotationDefined in ghc-internal-9.1003.0 · GHC.Internal.ExtsEq FingerprintDefined in ghc-internal-9.1003.0 · GHC.Internal.Fingerprint.TypeEq ErrnoDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.ErrorEq CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq IntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.PtrEq WordPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.PtrEq AssociativityDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq DecidedStrictnessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq FixityDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq SourceStrictnessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq SourceUnpackednessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq MaskingStateDefined in ghc-internal-9.1003.0 · GHC.Internal.IOEq BufferStateDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.BufferEq IODeviceTypeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.DeviceEq SeekModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.DeviceEq CodingProgressDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Encoding.TypesEq ArrayExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionEq AsyncExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionEq ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionEq IOErrorTypeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionEq IOExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionEq HandlePosnDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.HandleEq BufferModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesEq HandleDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesEq NewlineDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesEq NewlineModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesEq IOModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.IOModeEq InfoProvDefined in ghc-internal-9.1003.0 · GHC.Internal.InfoProv.TypesEq Int16Defined in ghc-internal-9.1003.0 · GHC.Internal.IntEq Int32Defined in ghc-internal-9.1003.0 · GHC.Internal.IntEq Int64Defined in ghc-internal-9.1003.0 · GHC.Internal.IntEq Int8Defined in ghc-internal-9.1003.0 · GHC.Internal.IntEq IoSubSystemDefined in ghc-internal-9.1003.0 · GHC.Internal.RTS.FlagsEq StackEntryDefined in ghc-internal-9.1003.0 · GHC.Internal.Stack.CloneStackEq SrcLocDefined in ghc-internal-9.1003.0 · GHC.Internal.Stack.TypesEq CBlkCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CBlkSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CCcDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CClockIdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CDevDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CFsBlkCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CFsFilCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CGidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CIdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CInoDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CModeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CNfdsDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CNlinkDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq COffDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CPidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CRLimDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CSocklenDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CSpeedDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CSsizeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CTcflagDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CTimerDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq CUidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq FdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesEq LexemeDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.Read.LexEq NumberDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.Read.LexEq SomeCharDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsEq SomeSymbolDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsEq SomeNatDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeNatsEq GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeEq Word16Defined in ghc-internal-9.1003.0 · GHC.Internal.WordEq Word32Defined in ghc-internal-9.1003.0 · GHC.Internal.WordEq Word64Defined in ghc-internal-9.1003.0 · GHC.Internal.WordEq Word8Defined in ghc-internal-9.1003.0 · GHC.Internal.WordEq BoolDefined in ghc-prim-0.12.0 · GHC.ClassesEq CharDefined in ghc-prim-0.12.0 · GHC.ClassesEq DoubleDefined in ghc-prim-0.12.0 · GHC.ClassesEq FloatDefined in ghc-prim-0.12.0 · GHC.ClassesEq IntDefined in ghc-prim-0.12.0 · GHC.ClassesEq ModuleDefined in ghc-prim-0.12.0 · GHC.ClassesEq OrderingDefined in ghc-prim-0.12.0 · GHC.ClassesEq TrNameDefined in ghc-prim-0.12.0 · GHC.ClassesEq TyConDefined in ghc-prim-0.12.0 · GHC.ClassesEq WordDefined in ghc-prim-0.12.0 · GHC.ClassesEq OptionsDefined in invariant-0.6.4 · Data.Functor.Invariant.THEq InvariantClassDefined in invariant-0.6.4 · Data.Functor.Invariant.TH.InternalEq StarKindStatusDefined in invariant-0.6.4 · Data.Functor.Invariant.TH.InternalEq EncodingExceptionDefined in os-string-2.0.7 · System.OsString.Encoding.InternalEq OsCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesByte equality of the internal representation.
Eq OsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesByte equality of the internal representation.
Eq PosixCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesEq PosixStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesEq WindowsCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesEq WindowsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesEq ModeDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq StyleDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq TextDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassEq DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJEq PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassEq CardinalityDefined in random-1.2.1.3 · System.Random.GFiniteEq StdGenDefined in random-1.2.1.3 · System.Random.InternalEq ScientificDefined in scientific-0.3.8.0 · Data.ScientificScientific numbers can be safely compared for equality. No magnitude 10^e
is calculated so there's no risk of a blowup in space or time when comparing
scientific numbers coming from untrusted sources.
Eq TSemDefined in stm-2.5.3.1 · Control.Concurrent.STM.TSemEq AnnLookupDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq AnnTargetDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq BangDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq BndrVisDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq BodyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq BytesDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq CallconvDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ClauseDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ConDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq DecDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq DecidedStrictnessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq DerivClauseDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq DerivStrategyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq DocLocDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ExpDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq FamilyResultSigDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq FixityDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq FixityDirectionDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ForeignDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq FunDepDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq GuardDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq InfoDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq InjectivityAnnDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq InlineDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq LitDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq LocDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq MatchDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ModNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ModuleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq ModuleInfoDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq NameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq NameFlavourDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq NameSpaceDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq NamespaceSpecifierDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq OccNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq OverlapDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq PatDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq PatSynArgsDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq PatSynDirDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq PhasesDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq PkgNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq PragmaDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq RangeDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq RoleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq RuleBndrDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq RuleMatchDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq SafetyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq SourceStrictnessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq SourceUnpackednessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq SpecificityDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq StmtDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq TyLitDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq TySynEqnDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq TypeDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq TypeFamilyHeadDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorEq I8Defined in text-2.1.3 · Data.Text.ForeignEq TextDefined in text-2.1.3 · Data.Text · orphanEq BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderEq PartialUtf8CodePointDefined in text-2.1.3 · Data.Text.Internal.EncodingEq Utf8StateDefined in text-2.1.3 · Data.Text.Internal.EncodingEq DecoderStateDefined in text-2.1.3 · Data.Text.Internal.Encoding.Utf8Eq SizeDefined in text-2.1.3 · Data.Text.Internal.Fusion.SizeEq TextDefined in text-2.1.3 · Data.Text.Lazy · orphanEq ConstructorInfoDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq ConstructorVariantDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq DatatypeInfoDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq DatatypeVariantDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq FieldStrictnessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq StrictnessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq UnpackednessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeEq CalendarDiffDaysDefined in time-1.12.2 · Data.Time.Calendar.CalendarDiffDaysEq DayDefined in time-1.12.2 · Data.Time.Calendar.DaysEq MonthDefined in time-1.12.2 · Data.Time.Calendar.MonthEq QuarterDefined in time-1.12.2 · Data.Time.Calendar.QuarterEq QuarterOfYearDefined in time-1.12.2 · Data.Time.Calendar.QuarterEq DayOfWeekDefined in time-1.12.2 · Data.Time.Calendar.WeekEq FirstWeekTypeDefined in time-1.12.2 · Data.Time.Calendar.WeekDateEq AbsoluteTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.AbsoluteTimeEq DiffTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.DiffTimeEq NominalDiffTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.NominalDiffTimeEq SystemTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.SystemTimeEq UTCTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.UTCTimeEq UniversalTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.UniversalTimeEq TimeLocaleDefined in time-1.12.2 · Data.Time.Format.LocaleEq CalendarDiffTimeDefined in time-1.12.2 · Data.Time.LocalTime.Internal.CalendarDiffTimeEq LocalTimeDefined in time-1.12.2 · Data.Time.LocalTime.Internal.LocalTimeEq TimeOfDayDefined in time-1.12.2 · Data.Time.LocalTime.Internal.TimeOfDayEq TimeZoneDefined in time-1.12.2 · Data.Time.LocalTime.Internal.TimeZoneEq SubHashPathDefined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugEq UUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalEq UnpackedUUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalEq SizeDefined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle.SizeEq ChecksDefined in vector-0.13.2.0 · Data.Vector.Internal.CheckEq ()Defined in ghc-prim-0.12.0 · GHC.ClassesEq (Chan a)Defined in base-4.20.2.0 · Control.Concurrent.ChanEq (MutableByteArray s)Defined in base-4.20.2.0 · Data.Array.ByteEq (TVar a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncEq (ConstPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.ConstPtrEq (ForeignPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ForeignPtrEq (IOPort a)Defined in ghc-internal-9.1003.0 · GHC.Internal.IOPortEq (IORef a)Defined in ghc-internal-9.1003.0 · GHC.Internal.IORefPointer equality.
Eq (MVar a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MVarCompares the underlying pointers.
Eq (FunPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.PtrEq (Ptr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.PtrEq (StablePtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.StableEq (StableName a)Defined in ghc-internal-9.1003.0 · GHC.Internal.StableNameEq (SChar c)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsEq (SSymbol s)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsEq (SNat n)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeNatsEq (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq (TBQueue a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TBQueueEq (TChan a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TChanEq (TMVar a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TMVarEq (TQueue a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TQueueEq (TVar a)Defined in stm-2.5.3.1 · Control.Sequential.STMEq a => Eq (Complex a)Defined in base-4.20.2.0 · Data.ComplexEq a => Eq (First a)Defined in base-4.20.2.0 · Data.SemigroupEq a => Eq (Last a)Defined in base-4.20.2.0 · Data.SemigroupEq a => Eq (Max a)Defined in base-4.20.2.0 · Data.SemigroupEq a => Eq (Min a)Defined in base-4.20.2.0 · Data.SemigroupEq a => Eq (IntMap a)Defined in containers-0.7 · Data.IntMap.InternalEq a => Eq (Seq a)Defined in containers-0.7 · Data.Sequence.InternalEq a => Eq (ViewL a)Defined in containers-0.7 · Data.Sequence.InternalEq a => Eq (ViewR a)Defined in containers-0.7 · Data.Sequence.InternalEq a => Eq (Intersection a)Defined in containers-0.7 · Data.Set.InternalEq a => Eq (Set a)Defined in containers-0.7 · Data.Set.InternalEq a => Eq (Tree a)Defined in containers-0.7 · Data.TreeEq a => Eq (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalEq a => Eq (DList a)Defined in dlist-1.0 · Data.DList.InternalEq a => Eq (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseEq a => Eq (And a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsEq a => Eq (Iff a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsEq a => Eq (Ior a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsEq a => Eq (Xor a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsEq a => Eq (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityEq a => Eq (First a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidEq a => Eq (Last a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidEq a => Eq (Down a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdEq a => Eq (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (ZipList a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListEq a => Eq (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeEq a => Eq (Ratio a)Defined in ghc-internal-9.1003.0 · GHC.Internal.RealEq a => Eq (Hashed a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassUses precomputed hash to detect inequality faster
Eq a => Eq (AnnotDetails a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq a => Eq (Span a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq a => Eq (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayEq a => Eq (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayEq a => Eq (Stream a)Defined in text-2.1.3 · Data.Text.Internal.Fusion.TypesEq a => Eq (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalNote that, in the presence of hash collisions, equal HashSets may
behave differently, i.e. extensionality may be violated:
data D = A | B deriving (Eq, Show)instance Hashable D where hashWithSalt salt _d = salt
x = fromList [A, B]y = fromList [B, A]
x == yTruetoList x[A,B]toList y[B,A]
In general, the lack of extensionality can be observed with any function that depends on the key ordering, such as folds and traversals.
Eq a => Eq (Vector a)Defined in vector-0.13.2.0 · Data.VectorEq a => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictEq a => Eq (a)Defined in ghc-prim-0.12.0 · GHC.ClassesEq a => Eq [a]Defined in ghc-prim-0.12.0 · GHC.ClassesEq flag => Eq (TyVarBndr flag)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxEq g => Eq (StateGen g)Defined in random-1.2.1.3 · System.Random.InternalEq g => Eq (AtomicGen g)Defined in random-1.2.1.3 · System.Random.StatefulEq g => Eq (IOGen g)Defined in random-1.2.1.3 · System.Random.StatefulEq g => Eq (STGen g)Defined in random-1.2.1.3 · System.Random.StatefulEq g => Eq (TGen g)Defined in random-1.2.1.3 · System.Random.StatefulEq k => Eq (Error k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugEq k => Eq (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugEq m => Eq (WrappedMonoid m)Defined in base-4.20.2.0 · Data.SemigroupEq p => Eq (Par1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq vertex => Eq (SCC vertex)Defined in containers-0.7 · Data.Graph(Storable a, Eq a) => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Eq a, Prim a) => Eq (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArray(Prim a, Eq a) => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Unbox a, Eq a) => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphanEq (IOUArray i e)Defined in array-0.5.8.0 · Data.Array.IO.InternalsEq (Fixed a)Defined in base-4.20.2.0 · Data.FixedEq (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyEq (TypeRep a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Typeable.InternalEq (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (IOArray i e)Defined in ghc-internal-9.1003.0 · GHC.Internal.IOArrayEq (STRef s a)Defined in ghc-internal-9.1003.0 · GHC.Internal.STRefPointer equality.
Eq (MutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayEq (MVar s a)Defined in primitive-0.9.1.0 · Data.Primitive.MVarEq (MutVar s a)Defined in primitive-0.9.1.0 · Data.Primitive.MutVarEq (MutablePrimArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayEq (PrimVar s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimVarEq (SmallMutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayEq a => Eq (Arg a b)Defined in base-4.20.2.0 · Data.SemigroupEq m => Eq (Over m a)Defined in selective-0.7.0.1 · Control.SelectiveEq m => Eq (Under m a)Defined in selective-0.7.0.1 · Control.SelectiveEq m => Eq (Over m a)Defined in selective-0.7.0.1 · Control.Selective.MultiEq m => Eq (Under m a)Defined in selective-0.7.0.1 · Control.Selective.Multi(Eq1 f, Eq a) => Eq (Ap f a)Defined in free-5.2 · Control.Applicative.Free(Eq1 f, Eq a) => Eq (Cofree f a)Defined in free-5.2 · Control.Comonad.Cofree(Eq1 f, Eq a) => Eq (Free f a)Defined in free-5.2 · Control.Monad.Free(Eq1 f, Eq a) => Eq (Free f a)Defined in free-5.2 · Control.Monad.Free.Ap(Eq1 f, Eq a) => Eq (Coyoneda f a)Defined in kan-extensions-5.2.7 · Data.Functor.Coyoneda(Eq1 f, Eq a) => Eq (Yoneda f a)Defined in kan-extensions-5.2.7 · Data.Functor.Yoneda(Eq1 f, Eq a) => Eq (Lift f a)Defined in transformers-0.6.1.1 · Control.Applicative.Lift(Eq1 m, Eq a) => Eq (IterT m a)Defined in free-5.2 · Control.Monad.Trans.Iter(Eq1 m, Eq a) => Eq (MaybeT m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Maybe(Eq1 w, Eq a) => Eq (CoiterT w a)Defined in free-5.2 · Control.Comonad.Trans.Coiter(Ix i, Eq e) => Eq (Array i e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Arr(Ix ix, Eq e, IArray UArray e) => Eq (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(Eq a, Eq b) => Eq (Either a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Either(Eq a, Eq b) => Eq (a, b)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq e, Eq a) => Eq (Validation e a)Defined in either-5.0.3 · Data.Either.Validation(Eq e, Eq a) => Eq (Validation e a)Defined in selective-0.7.0.1 · Control.Selective(Eq i, Eq e) => Eq (TArray i e)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TArray(Eq k, Eq a) => Eq (Map k a)Defined in containers-0.7 · Data.Map.Internal(Eq k, Eq v) => Eq (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalNote that, in the presence of hash collisions, equal HashMaps may
behave differently, i.e. extensionality may be violated:
data D = A | B deriving (Eq, Show)instance Hashable D where hashWithSalt salt _d = salt
x = fromList [(A,1), (B,2)]y = fromList [(B,2), (A,1)]
x == yTruetoList x[(A,1),(B,2)]toList y[(B,2),(A,1)]
In general, the lack of extensionality can be observed with any function that depends on the key ordering, such as folds and traversals.
(Eq k, Eq v) => Eq (Leaf k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(GEq (Rep1 f a), Generic1 f) => Eq (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalEq (STUArray s i e)Defined in array-0.5.8.0 · Data.Array.BaseEq (STArray s i e)Defined in ghc-internal-9.1003.0 · GHC.Internal.ArrEq (Coercion a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.CoercionEq (OrderingI a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.OrdEq (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec (Ptr ()) p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (a :~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.EqualityEq (bi a b) => Eq (Biap bi a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapEq (f a) => Eq (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidEq (f a) => Eq (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq (f a) => Eq (WrappedContravariant f a)Defined in invariant-0.6.4 · Data.Functor.InvariantEq (f a) => Eq (WrappedFunctor f a)Defined in invariant-0.6.4 · Data.Functor.InvariantEq (f p) => Eq (Rec1 f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (p (Fix p a) a) => Eq (Fix p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixEq (p a a) => Eq (Join p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinEq (w (CofreeF f a (CofreeT f w a))) => Eq (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.CofreeEq a => Eq (Const a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstEq a => Eq (Constant a b)Defined in transformers-0.6.1.1 · Data.Functor.ConstantEq a => Eq (Bundle Id v a)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle · orphanEq b => Eq (Tagged s b)Defined in tagged-0.8.9 · Data.Tagged(Eq1 f, Eq1 m, Eq a) => Eq (FreeT f m a)Defined in free-5.2 · Control.Monad.Trans.Free(Eq1 f, Eq1 m, Eq a) => Eq (FreeT f m a)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Eq1 f, Eq a) => Eq (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Eq1 f, Eq a) => Eq (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Eq1 f, Eq a) => Eq (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.Reverse(Eq1 f, Eq e, Eq a) => Eq (ExceptT e f a)Defined in selective-0.7.0.1 · Control.Selective.Trans.Except(Functor f, Monad m, Eq1 f, Eq1 m, Eq a) => Eq (FT f m a)Defined in free-5.2 · Control.Monad.Trans.Free.Church(Generic1 f, Eq (Rep1 f a)) => Eq (Generically1 f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Eq a, Eq (f b)) => Eq (CofreeF f a b)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Eq a, Eq (f b)) => Eq (FreeF f a b)Defined in free-5.2 · Control.Monad.Trans.Free(Eq a, Eq (f b)) => Eq (FreeF f a b)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Eq a, Eq b, Eq c) => Eq (a, b, c)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq e, Eq1 m, Eq a) => Eq (ExceptT e m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Except(Eq w, Eq1 m, Eq a) => Eq (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Eq w, Eq1 m, Eq a) => Eq (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.StrictEq (a :~~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.EqualityEq c => Eq (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Eq (f a), Eq (g a)) => Eq (Product f g a)Defined in base-4.20.2.0 · Data.Functor.Product(Eq (f a), Eq (g a)) => Eq (Sum f g a)Defined in base-4.20.2.0 · Data.Functor.Sum(Eq (f p), Eq (g p)) => Eq ((:*:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Eq (f p), Eq (g p)) => Eq ((:+:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)Defined in ghc-prim-0.12.0 · GHC.ClassesEq (f (g a)) => Eq (Compose f g a)Defined in base-4.20.2.0 · Data.Functor.ComposeEq (f (g p)) => Eq ((:.:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (f a) => Eq (Clown f a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownEq (f p) => Eq (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (g b) => Eq (Joker g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerEq (p a b) => Eq (WrappedBifunctor p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedEq (p a b) => Eq (WrappedProfunctor p a b)Defined in invariant-0.6.4 · Data.Functor.InvariantEq (p b a) => Eq (Flip p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq (f a b), Eq (g a b)) => Eq (Product f g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Eq (p a b), Eq (q a b)) => Eq (Sum p q a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => Eq (a, b, c, d, e, f)Defined in ghc-prim-0.12.0 · GHC.ClassesEq (f (p a b)) => Eq (Tannen f p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => Eq (a, b, c, d, e, f, g)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => Eq (a, b, c, d, e, f, g, h)Defined in ghc-prim-0.12.0 · GHC.ClassesEq (p (f a) (g b)) => Eq (Biff p f g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => Eq (a, b, c, d, e, f, g, h, i)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j) => Eq (a, b, c, d, e, f, g, h, i, j)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k) => Eq (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l) => Eq (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-prim-0.12.0 · GHC.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-prim-0.12.0 · GHC.ClassesA type f is a Functor if it provides a function fmap which, given any types a and b
lets you apply any function from (a -> b) to turn an f a into an f b, preserving the
structure of f. Furthermore f needs to adhere to the following:
Note, that the second law follows from the free theorem of the type fmap and the first law, so you need only check that the former condition holds. See these articles by School of Haskell or David Luposchainsky for an explanation.
fmap :: (a -> b) -> f a -> f bfmap is used to apply a function of type (a -> b) to a value of type f a,
where f is a functor, to produce a value of type f b.
Note that for any type constructor with more than one parameter (e.g., Either),
only the last type parameter can be modified with fmap (e.g., b in `Either a b`).
Some type constructors with two parameters or more have a instance that allows
both the last and the penultimate parameters to be mapped over.Data.Bifunctor
Convert from a Maybe Int to a Maybe String
using show:
fmap show NothingNothingfmap show (Just 3)Just "3"
Convert from an Either Int Int to an
Either Int String using show:
fmap show (Left 17)Left 17fmap show (Right 17)Right "17"
Double each element of a list:
fmap (*2) [1,2,3][2,4,6]
Apply even to the second element of a pair:
fmap even (2,2)(2,True)
It may seem surprising that the function is only applied to the last element of the tuple
compared to the list example above which applies it to every element in the list.
To understand, remember that tuples are type constructors with multiple type parameters:
a tuple of 3 elements (a,b,c) can also be written (,,) a b c and its Functor instance
is defined for Functor ((,,) a b) (i.e., only the third parameter is free to be mapped over
with fmap).
It explains why fmap can be used with tuples containing values of different types as in the
following example:
fmap even ("hello", 1.0, 4)("hello",1.0,True)
(<$) :: a -> f b -> f ainfixl 4Replace all locations in the input with the same value.
The default definition is fmap . const, but this may be
overridden with a more efficient version.
Perform a computation with Maybe and replace the result with a constant value if it is Just:
'a' <$ Just 2Just 'a''a' <$ NothingNothing
Functor ComplexDefined in base-4.20.2.0 · Data.ComplexFunctor FirstDefined in base-4.20.2.0 · Data.SemigroupFunctor LastDefined in base-4.20.2.0 · Data.SemigroupFunctor MaxDefined in base-4.20.2.0 · Data.SemigroupFunctor MinDefined in base-4.20.2.0 · Data.SemigroupFunctor ArgDescrDefined in base-4.20.2.0 · System.Console.GetOptFunctor ArgOrderDefined in base-4.20.2.0 · System.Console.GetOptFunctor OptDescrDefined in base-4.20.2.0 · System.Console.GetOptFunctor DecoderDefined in binary-0.8.9.3 · Data.Binary.Get.InternalFunctor GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalFunctor PutMDefined in binary-0.8.9.3 · Data.Binary.PutFunctor PutDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalFunctor SCCDefined in containers-0.7 · Data.GraphFunctor IntMapDefined in containers-0.7 · Data.IntMap.InternalFunctor DigitDefined in containers-0.7 · Data.Sequence.InternalFunctor ElemDefined in containers-0.7 · Data.Sequence.InternalFunctor FingerTreeDefined in containers-0.7 · Data.Sequence.InternalFunctor NodeDefined in containers-0.7 · Data.Sequence.InternalFunctor SeqDefined in containers-0.7 · Data.Sequence.InternalFunctor ViewLDefined in containers-0.7 · Data.Sequence.InternalFunctor ViewRDefined in containers-0.7 · Data.Sequence.InternalFunctor TreeDefined in containers-0.7 · Data.TreeFunctor DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalFunctor DListDefined in dlist-1.0 · Data.DList.InternalFunctor NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor STMDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncFunctor HandlerDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.ExceptionFunctor IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFunctor FirstDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidFunctor LastDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidFunctor DownDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdFunctor DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor ZipListDefined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListFunctor NoIODefined in ghc-internal-9.1003.0 · GHC.Internal.GHCiFunctor Par1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor PDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPFunctor ReadPDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPFunctor ReadPrecDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPrecFunctor SoloDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor AnnotDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJFunctor DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJFunctor SpanDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJFunctor ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayFunctor SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayFunctor STMDefined in stm-2.5.3.1 · Control.Sequential.STMFunctor PprMDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.PprLibFunctor QDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxFunctor TyVarBndrDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxFunctor VectorDefined in vector-0.13.2.0 · Data.VectorFunctor IdDefined in vector-0.13.2.0 · Data.Vector.Fusion.UtilFunctor VectorDefined in vector-0.13.2.0 · Data.Vector.StrictFunctor BoxDefined in vector-stream-0.1.0.1 · Data.Stream.MonadicFunctor []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyFunctor U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor V1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Arg a)Defined in base-4.20.2.0 · Data.SemigroupFunctor (SetM s)Defined in containers-0.7 · Data.GraphFunctor (Map k)Defined in containers-0.7 · Data.Map.InternalFunctor (State s)Defined in containers-0.7 · Utils.Containers.Internal.StateFunctor (Validation e)Defined in either-5.0.3 · Data.Either.ValidationFunctor (Alt f)Defined in free-5.2 · Control.Alternative.FreeFunctor (AltF f)Defined in free-5.2 · Control.Alternative.FreeFunctor (Alt f)Defined in free-5.2 · Control.Alternative.Free.FinalFunctor (Ap f)Defined in free-5.2 · Control.Applicative.FreeFunctor (Ap f)Defined in free-5.2 · Control.Applicative.Free.FastFunctor (Ap f)Defined in free-5.2 · Control.Applicative.Free.FinalFunctor (F f)Defined in free-5.2 · Control.Monad.Free.ChurchFunctor (Array i)Defined in ghc-internal-9.1003.0 · GHC.Internal.ArrFunctor (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpFunctor (Either a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.EitherFunctor (StateL s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsFunctor (StateR s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsFunctor (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.STFunctor (Tuple2 a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor (Coyoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.CoyonedaFunctor (Yoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.YonedaFunctor (StateL s)Defined in keys-3.12.3 · Data.KeyFunctor (StateR s)Defined in keys-3.12.3 · Data.KeyFunctor (Over m)Defined in selective-0.7.0.1 · Control.SelectiveFunctor (Under m)Defined in selective-0.7.0.1 · Control.SelectiveFunctor (Validation e)Defined in selective-0.7.0.1 · Control.SelectiveFunctor (Select f)Defined in selective-0.7.0.1 · Control.Selective.FreeFunctor (Over m)Defined in selective-0.7.0.1 · Control.Selective.MultiFunctor (Under m)Defined in selective-0.7.0.1 · Control.Selective.MultiFunctor (Select f)Defined in selective-0.7.0.1 · Control.Selective.Rigid.FreerFunctor (IParser t)Defined in text-2.1.3 · Data.Text.Internal.ReadFunctor (HashMap k)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalFunctor (Step s)Defined in vector-stream-0.1.0.1 · Data.Stream.MonadicFunctor f => Functor (Co f)Defined in adjunctions-4.4.3 · Data.Functor.RepFunctor f => Functor (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeFunctor f => Functor (Free f)Defined in free-5.2 · Control.Monad.FreeFunctor f => Functor (Free f)Defined in free-5.2 · Control.Monad.Free.ApFunctor f => Functor (Act f)Defined in keys-3.12.3 · Data.KeyFunctor f => Functor (SelectA f)Defined in selective-0.7.0.1 · Control.SelectiveFunctor f => Functor (SelectM f)Defined in selective-0.7.0.1 · Control.SelectiveFunctor f => Functor (Select f)Defined in selective-0.7.0.1 · Control.Selective.Rigid.FreeFunctor f => Functor (MaybeApply f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassFunctor f => Functor (WrappedApplicative f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassFunctor f => Functor (Act f)Defined in semigroupoids-6.0.1 · Data.Semigroup.BifoldableFunctor f => Functor (Act f)Defined in semigroupoids-6.0.1 · Data.Semigroup.FoldableFunctor f => Functor (Lift f)Defined in transformers-0.6.1.1 · Control.Applicative.LiftFunctor m => Functor (MaybeT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.MaybeFunctor w => Functor (CoiterT w)Defined in free-5.2 · Control.Comonad.Trans.CoiterMonad m => Functor (WrappedMonad m)Defined in base-4.20.2.0 · Control.ApplicativeMonad m => Functor (Handler m)Defined in exceptions-0.10.9 · Control.Monad.CatchMonad m => Functor (CatchT m)Defined in exceptions-0.10.9 · Control.Monad.Catch.PureMonad m => Functor (IterT m)Defined in free-5.2 · Control.Monad.Trans.IterMonad m => Functor (Stream m)Defined in vector-stream-0.1.0.1 · Data.Stream.MonadicArrow a => Functor (ArrowMonad a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowBifunctor p => Functor (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixBifunctor p => Functor (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinFunctor (Mag a b)Defined in bifunctors-5.6.2 · Data.BiapplicativeFunctor (FT f m)Defined in free-5.2 · Control.Monad.Trans.Free.ChurchFunctor (Const m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstFunctor (URec Char)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Double)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Float)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Int)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Word)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec (Ptr ()))Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Tuple3 a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor (Density f)Defined in kan-extensions-5.2.7 · Control.Comonad.DensityFunctor (Day f g)Defined in kan-extensions-5.2.7 · Data.Functor.DayFunctor (CopastroSum p a)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceFunctor (CotambaraSum p a)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceFunctor (PastroSum p a)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceFunctor (Environment p a)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedFunctor (Bar t b)Defined in profunctors-5.6.3 · Data.Profunctor.MappingFunctor (FreeMapping p a)Defined in profunctors-5.6.3 · Data.Profunctor.MappingFunctor (Copastro p a)Defined in profunctors-5.6.3 · Data.Profunctor.StrongFunctor (Cotambara p a)Defined in profunctors-5.6.3 · Data.Profunctor.StrongFunctor (Pastro p a)Defined in profunctors-5.6.3 · Data.Profunctor.StrongFunctor (Baz t b)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingFunctor (Bazaar a b)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingFunctor (FreeTraversing p a)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingFunctor (Coyoneda p a)Defined in profunctors-5.6.3 · Data.Profunctor.YonedaFunctor (Yoneda p a)Defined in profunctors-5.6.3 · Data.Profunctor.YonedaFunctor (Tagged s)Defined in tagged-0.8.9 · Data.TaggedFunctor (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantFunctor (bi a) => Functor (Biap bi a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapFunctor (t m) => Functor (LiftingAccum t m)Defined in mtl-2.3.1 · Control.Monad.AccumFunctor (t m) => Functor (LiftingSelect t m)Defined in mtl-2.3.1 · Control.Monad.SelectFunctor f => Functor (CofreeF f a)Defined in free-5.2 · Control.Comonad.Trans.CofreeFunctor f => Functor (FreeF f a)Defined in free-5.2 · Control.Monad.Trans.FreeFunctor f => Functor (FreeF f a)Defined in free-5.2 · Control.Monad.Trans.Free.ApFunctor f => Functor (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidFunctor f => Functor (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor f => Functor (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor f => Functor (Indexing f)Defined in indexed-traversable-0.1.4 · WithIndexFunctor f => Functor (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantFunctor f => Functor (ComposeEither f e)Defined in selective-0.7.0.1 · Control.SelectiveFunctor f => Functor (ExceptT e f)Defined in selective-0.7.0.1 · Control.Selective.Trans.ExceptFunctor f => Functor (Static f a)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.StaticFunctor f => Functor (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsDerived instance.
Functor f => Functor (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Functor g => Functor (ApF f g)Defined in free-5.2 · Control.Applicative.Trans.FreeFunctor g => Functor (ApT f g)Defined in free-5.2 · Control.Applicative.Trans.FreeFunctor g => Functor (Curried g h)Defined in kan-extensions-5.2.7 · Data.Functor.Day.CurriedFunctor m => Functor (Kleisli m a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowFunctor m => Functor (AccumT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.AccumFunctor m => Functor (ExceptT e m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ExceptFunctor m => Functor (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityFunctor m => Functor (ReaderT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ReaderFunctor m => Functor (SelectT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.SelectFunctor m => Functor (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.LazyFunctor m => Functor (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.StrictFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.CPSFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.StrictFunctor w => Functor (EnvT e w)Defined in comonad-5.0.9 · Control.Comonad.Trans.EnvFunctor w => Functor (StoreT s w)Defined in comonad-5.0.9 · Control.Comonad.Trans.StoreFunctor w => Functor (TracedT m w)Defined in comonad-5.0.9 · Control.Comonad.Trans.TracedMonad m => Functor (StateT s m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsMonad m => Functor (Bundle m v)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle.MonadicArrow a => Functor (WrappedArrow a b)Defined in base-4.20.2.0 · Control.ApplicativeProfunctor p => Functor (TambaraSum p a)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceProfunctor p => Functor (Closure p a)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedProfunctor p => Functor (Coprep p)Defined in profunctors-5.6.3 · Data.Profunctor.RepProfunctor p => Functor (Prep p)Defined in profunctors-5.6.3 · Data.Profunctor.RepProfunctor p => Functor (Tambara p a)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Contravariant f, Contravariant g) => Functor (Compose f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Compose(Applicative f, Monad f) => Functor (WhenMissing f x)Defined in containers-0.7 · Data.IntMap.Internal(Functor f, Functor g) => Functor (ComposeCF f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Compose(Functor f, Functor g) => Functor (ComposeFC f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Compose(Functor f, Functor g) => Functor (ComposeTraversable f g)Defined in selective-0.7.0.1 · Control.Selective(Functor f, Functor m) => Functor (ReaderT f m)Defined in adjunctions-4.4.3 · Control.Monad.Representable.Reader(Functor f, Functor m) => Functor (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free(Functor f, Functor m) => Functor (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Functor f, Functor w) => Functor (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Functor g, Functor m) => Functor (StateT g m)Defined in adjunctions-4.4.3 · Control.Monad.Representable.State(Functor w, Functor g) => Functor (StoreT g w)Defined in adjunctions-4.4.3 · Control.Comonad.Representable.Store(Generic1 f, Functor (Rep1 f)) => Functor (Generically1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Cokleisli w a)Defined in comonad-5.0.9 · Control.ComonadFunctor (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Tuple4 a b c)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor (Codensity k)Defined in kan-extensions-5.2.7 · Control.Monad.CodensityFunctor (Lan f g)Defined in kan-extensions-5.2.7 · Data.Functor.Kan.LanFunctor (Ran g h)Defined in kan-extensions-5.2.7 · Data.Functor.Kan.RanFunctor (Costar f a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesFunctor (Forget r a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesFunctor (ContT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ContFunctor ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor f => Functor (WhenMatched f x y)Defined in containers-0.7 · Data.IntMap.InternalFunctor f => Functor (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesFunctor w => Functor (ContsT r w m)Defined in adjunctions-4.4.3 · Control.Monad.Trans.ContsFunctor w => Functor (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.Co(Adjunction f g, Functor w) => Functor (AdjointT f g w)Defined in adjunctions-4.4.3 · Control.Comonad.Trans.Adjoint(Adjunction f g, Monad m) => Functor (AdjointT f g m)Defined in adjunctions-4.4.3 · Control.Monad.Trans.Adjoint(Adjunction f g, Functor w) => Functor (AdjointT f g w)Defined in adjunctions-4.4.3 · Control.Monad.Trans.Contravariant.Adjoint(Applicative f, Monad f) => Functor (WhenMissing f k x)Defined in containers-0.7 · Data.Map.Internal(Functor f, Functor g) => Functor (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Functor f, Functor g) => Functor (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Functor f, Functor g) => Functor (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Functor f, Functor g) => Functor (f :+: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsBifunctor p => Functor (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBifunctor p => Functor (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedFunctor (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownFunctor (Tuple5 a b c d)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor f => Functor (WhenMatched f k x y)Defined in containers-0.7 · Data.Map.InternalFunctor f => Functor (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor g => Functor (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.CPSFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.LazyFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.StrictProfunctor p => Functor (Codensity p a)Defined in profunctors-5.6.3 · Data.Profunctor.Ran(Functor f, Functor g) => Functor (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Functor f, Functor g) => Functor (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Tuple6 a b c d e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Base(Functor (f a), Functor (g a)) => Functor (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Functor (f a), Functor (g a)) => Functor (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumFunctor (Tuple7 a b c d e f)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseProfunctor p => Functor (Procompose p q a)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctor p => Functor (Rift p q a)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctor q => Functor (Ran p q a)Defined in profunctors-5.6.3 · Data.Profunctor.Ran(Functor f, Bifunctor p) => Functor (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Bifunctor p, Functor g) => Functor (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiffA fixed-precision integer type with at least the range [-2^29 .. 2^29-1].
The exact range for a given implementation can be determined by using
Prelude.minBound and Prelude.maxBound from the Prelude.Bounded class.
Bounded IntDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEnum IntDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEq IntDefined in ghc-prim-0.12.0 · GHC.ClassesIntegral IntDefined in ghc-internal-9.1003.0 · GHC.Internal.RealData IntDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum IntDefined in ghc-internal-9.1003.0 · GHC.Internal.NumOrd IntDefined in ghc-prim-0.12.0 · GHC.ClassesRead IntDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadReal IntDefined in ghc-internal-9.1003.0 · GHC.Internal.RealShow IntDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowIx IntDefined in ghc-internal-9.1003.0 · GHC.Internal.IxBits IntDefined in ghc-internal-9.1003.0 · GHC.Internal.BitsFiniteBits IntDefined in ghc-internal-9.1003.0 · GHC.Internal.BitsStorable IntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.StorablePrintfArg IntDefined in base-4.20.2.0 · Text.PrintfNFData IntDefined in deepseq-1.5.0.0 · Control.DeepSeqPretty IntDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty IntDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassRandom IntDefined in random-1.2.1.3 · System.RandomFinite IntDefined in random-1.2.1.3 · System.Random.GFiniteUniform IntDefined in random-1.2.1.3 · System.Random.InternalUniformRange IntDefined in random-1.2.1.3 · System.Random.InternalBinary IntDefined in binary-0.8.9.3 · Data.Binary.ClassHashable IntDefined in hashable-1.4.7.0 · Data.Hashable.ClassPrim IntDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseShowPadded IntDefined in time-1.12.2 · Data.Time.Calendar.PrivateShowPadded IntDefined in time-compat-1.9.8 · Data.Time.Calendar.PrivateByteSource IntDefined in uuid-types-1.0.6 · Data.UUID.Types.Internal.BuilderDefault IntDefined in data-default-0.8.0.1 · Data.Default.InternalLift IntDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIArray UArray IntDefined in array-0.5.8.0 · Data.Array.BaseFoldableWithIndex Int IntMapDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Int SeqDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Int ZipListDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Int []Defined in indexed-traversable-0.1.4 · WithIndexFoldable1WithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Int IntMapDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Int SeqDefined in indexed-traversable-0.1.4 · WithIndexThe position in the Seq is available as the index.
FunctorWithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Int ZipListDefined in indexed-traversable-0.1.4 · WithIndexSame instance as for [].
FunctorWithIndex Int []Defined in indexed-traversable-0.1.4 · WithIndexThe position in the list is available as the index.
TraversableWithIndex Int IntMapDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Int SeqDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Int ZipListDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Int []Defined in indexed-traversable-0.1.4 · WithIndexVector Vector IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMVector MVector IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Int IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Int)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldable UIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable UIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableFoldableWithIndex [Int] TreeDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex [Int] TreeDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex [Int] TreeDefined in indexed-traversable-0.1.4 · WithIndexMArray (STUArray s) Int (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Int)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsShow (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (URec Int p) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just "uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (URec Int) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just "uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata URec IntDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsUsed for marking occurrences of Int#
data MVector s IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ByteSink Int g = Takes4Bytes gDefined in uuid-types-1.0.6 · Data.UUID.Types.Internal.BuilderThe builtin linked list type.
In Haskell, lists are one of the most important data types as they are
often used analogous to loops in imperative programming languages.
These lists are singly linked, which makes them unsuited for operations
that require \mathcal{O}(1) access. Instead, they are intended to
be traversed.
You can use List a or [a] in type signatures:
length :: [a] -> Intor
length :: List a -> IntThey are fully equivalent, and List a will be normalised to [a].
Lists are constructed recursively using the right-associative constructor operator (or cons)
(:) :: a -> [a] -> [a], which prepends an element to a list,
and the empty list [].
(1 : 2 : 3 : []) == (1 : (2 : (3 : []))) == [1, 2, 3]
Lists can also be constructed using list literals
of the form [x_1, x_2, ..., x_n]
which are syntactic sugar and, unless -XOverloadedLists is enabled,
are translated into uses of (:) and []
String literals, like "I 💜 hs", are translated into
Lists of characters, ['I', ' ', '💜', ' ', 'h', 's'].
Internally and in memory, all the above are represented like this, with arrows being pointers to locations in memory.
╭───┬───┬──╮ ╭───┬───┬──╮ ╭───┬───┬──╮ ╭────╮
│(:)│ │ ─┼──>│(:)│ │ ─┼──>│(:)│ │ ─┼──>│ [] │
╰───┴─┼─┴──╯ ╰───┴─┼─┴──╯ ╰───┴─┼─┴──╯ ╰────╯
v v v
1 2 3>>> ['H', 'a', 's', 'k', 'e', 'l', 'l']
"Haskell"
>>> 1 : [4, 1, 5, 9]
[1,4,1,5,9]
>>> [] : [] : []
[[],[]]
Monad []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix []Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFail []Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FailApplicative []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFoldable []Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable []Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseCombines lists by concatenation, starting from the empty list.
MonadPlus []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseCombines lists by concatenation, starting from the empty list.
MonadZip []Defined in base-4.20.2.0 · Control.Monad.ZipEq1 []Defined in base-4.20.2.0 · Data.Functor.ClassesOrd1 []Defined in base-4.20.2.0 · Data.Functor.ClassesRead1 []Defined in base-4.20.2.0 · Data.Functor.ClassesShow1 []Defined in base-4.20.2.0 · Data.Functor.ClassesNFData1 []Defined in deepseq-1.5.0.0 · Control.DeepSeqMonadThrow []Defined in exceptions-0.10.9 · Control.Monad.CatchHashable1 []Defined in hashable-1.4.7.0 · Data.Hashable.ClassAlt []Defined in semigroupoids-6.0.1 · Data.Functor.AltApply []Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind []Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend []Defined in semigroupoids-6.0.1 · Data.Functor.ExtendPlus []Defined in semigroupoids-6.0.1 · Data.Functor.PlusInvariant []Defined in invariant-0.6.4 · Data.Functor.InvariantSelective []Defined in selective-0.7.0.1 · Control.SelectiveAdjustable []Defined in keys-3.12.3 · Data.KeyFoldableWithKey []Defined in keys-3.12.3 · Data.KeyIndexable []Defined in keys-3.12.3 · Data.KeyKeyed []Defined in keys-3.12.3 · Data.KeyLookup []Defined in keys-3.12.3 · Data.KeyTraversableWithKey []Defined in keys-3.12.3 · Data.KeyZip []Defined in keys-3.12.3 · Data.KeyZipWithKey []Defined in keys-3.12.3 · Data.KeyPointed []Defined in pointed-5.0.4 · Data.PointedGeneric1 []Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldableWithIndex Int []Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Int []Defined in indexed-traversable-0.1.4 · WithIndexThe position in the list is available as the index.
TraversableWithIndex Int []Defined in indexed-traversable-0.1.4 · WithIndexMonadBase [] []Defined in transformers-base-0.4.6 · Control.Monad.BaseComonadCofree [] TreeDefined in free-5.2 · Control.Comonad.Cofree.ClassLift a => Lift [a]Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIsList [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.IsListEq a => Eq [a]Defined in ghc-prim-0.12.0 · GHC.ClassesData a => Data [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataFor historical reasons, the constructor name used for (:) is
"(:)". In a derived instance, it would be ":".
Ord a => Ord [a]Defined in ghc-prim-0.12.0 · GHC.ClassesRead a => Read [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow a => Show [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.Showa ~ Char => IsString [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.String(a ~ Char) context was introduced in 4.9.0.0
Generic [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseIsChar c => PrintfArg [c]Defined in base-4.20.2.0 · Text.PrintfIsChar c => PrintfType [c]Defined in base-4.20.2.0 · Text.PrintfNFData a => NFData [a]Defined in deepseq-1.5.0.0 · Control.DeepSeqPretty a => Pretty [a]Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty a => Pretty [a]Defined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassPpr a => Ppr [a]Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.PprBinary a => Binary [a]Defined in binary-0.8.9.3 · Data.Binary.ClassHashable a => Hashable [a]Defined in hashable-1.4.7.0 · Data.Hashable.ClassTypeSubstitution a => TypeSubstitution [a]Defined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeDefault [a]Defined in data-default-0.8.0.1 · Data.Default.InternalFoldableWithIndex [Int] TreeDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex [Int] TreeDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex [Int] TreeDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex i f => FoldableWithIndex [i] (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeFoldableWithIndex i f => FoldableWithIndex [i] (Free f)Defined in free-5.2 · Control.Monad.FreeFunctorWithIndex i f => FunctorWithIndex [i] (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeFunctorWithIndex i f => FunctorWithIndex [i] (Free f)Defined in free-5.2 · Control.Monad.FreeTraversableWithIndex i f => TraversableWithIndex [i] (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeTraversableWithIndex i f => TraversableWithIndex [i] (Free f)Defined in free-5.2 · Control.Monad.Freetype Rep [a] = D1 ('MetaData "List"
"GHC.Types"
"ghc-prim"
'False) (C1 ('MetaCons "[]"
'PrefixI 'False) U1 :+: C1 ('MetaCons ":"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 [] = D1 ('MetaData "List"
"GHC.Types"
"ghc-prim"
'False) (C1 ('MetaCons "[]"
'PrefixI 'False) U1 :+: C1 ('MetaCons ":"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Item [a] = aDefined in ghc-internal-9.1003.0 · GHC.Internal.IsListtype Key [] = IntDefined in keys-3.12.3 · Data.KeyNon-empty (and non-strict) list type.
a :| [a]infixr 5Monad NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFoldable NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableMonadZip NonEmptyDefined in base-4.20.2.0 · Control.Monad.ZipFoldable1 NonEmptyDefined in base-4.20.2.0 · Data.Foldable1Eq1 NonEmptyDefined in base-4.20.2.0 · Data.Functor.ClassesOrd1 NonEmptyDefined in base-4.20.2.0 · Data.Functor.ClassesRead1 NonEmptyDefined in base-4.20.2.0 · Data.Functor.ClassesShow1 NonEmptyDefined in base-4.20.2.0 · Data.Functor.ClassesNFData1 NonEmptyDefined in deepseq-1.5.0.0 · Control.DeepSeqHashable1 NonEmptyDefined in hashable-1.4.7.0 · Data.Hashable.ClassComonad NonEmptyDefined in comonad-5.0.9 · Control.ComonadComonadApply NonEmptyDefined in comonad-5.0.9 · Control.ComonadAlt NonEmptyDefined in semigroupoids-6.0.1 · Data.Functor.AltApply NonEmptyDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind NonEmptyDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend NonEmptyDefined in semigroupoids-6.0.1 · Data.Functor.ExtendTraversable1 NonEmptyDefined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassInvariant NonEmptyDefined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.List.NonEmpty
Selective NonEmptyDefined in selective-0.7.0.1 · Control.SelectiveAdjustable NonEmptyDefined in keys-3.12.3 · Data.KeyFoldableWithKey NonEmptyDefined in keys-3.12.3 · Data.KeyFoldableWithKey1 NonEmptyDefined in keys-3.12.3 · Data.KeyIndexable NonEmptyDefined in keys-3.12.3 · Data.KeyKeyed NonEmptyDefined in keys-3.12.3 · Data.KeyLookup NonEmptyDefined in keys-3.12.3 · Data.KeyTraversableWithKey NonEmptyDefined in keys-3.12.3 · Data.KeyTraversableWithKey1 NonEmptyDefined in keys-3.12.3 · Data.KeyZip NonEmptyDefined in keys-3.12.3 · Data.KeyZipWithKey NonEmptyDefined in keys-3.12.3 · Data.KeyCopointed NonEmptyDefined in pointed-5.0.4 · Data.CopointedPointed NonEmptyDefined in pointed-5.0.4 · Data.PointedGeneric1 NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexFoldable1WithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.4 · WithIndexComonadCofree Maybe NonEmptyDefined in free-5.2 · Control.Comonad.Cofree.ClassLift a => Lift (NonEmpty a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIsList (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.IsListEq a => Eq (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseData a => Data (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd a => Ord (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseRead a => Read (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow a => Show (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ShowGeneric (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseNFData a => NFData (NonEmpty a)Defined in deepseq-1.5.0.0 · Control.DeepSeqBinary a => Binary (NonEmpty a)Defined in binary-0.8.9.3 · Data.Binary.ClassHashable a => Hashable (NonEmpty a)Defined in hashable-1.4.7.0 · Data.Hashable.Classtype Rep (NonEmpty a) = D1 ('MetaData "NonEmpty"
"GHC.Internal.Base"
"ghc-internal"
'False) (C1 ('MetaCons ":|"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 NonEmpty = D1 ('MetaData "NonEmpty"
"GHC.Internal.Base"
"ghc-internal"
'False) (C1 ('MetaCons ":|"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Item (NonEmpty a) = aDefined in ghc-internal-9.1003.0 · GHC.Internal.IsListtype Key NonEmpty = IntDefined in keys-3.12.3 · Data.KeyThe class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
(
law)
You can alternatively define mconcat instead of mempty, in which case the laws are:
The method names refer to the monoid of lists under concatenation, but there are many other instances.
Some types can be viewed as a monoid in more than one way,
e.g. both addition and multiplication on numbers.
In such cases we often define newtypes and make those instances
of Monoid, e.g. Data.Semigroup.Sum and Data.Semigroup.Product.
NOTE: Semigroup is a superclass of Monoid since base-4.11.0.0.
mempty :: aIdentity of mappend
"Hello world" <> mempty"Hello world"
mempty <> [1, 2, 3][1,2,3]
mappend :: a -> a -> aAn associative operation
NOTE: This method is redundant and has the default
implementation mappend = (<>) since base-4.11.0.0.
Should it be implemented manually, since mappend is a synonym for
(<>), it is expected that the two functions are defined the same
way. In a future GHC release mappend will be removed from Monoid.
mconcat :: [a] -> aFold a list using the monoid.
For most types, the default definition for mconcat will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.
mconcat ["Hello", " ", "Haskell", "!"]"Hello Haskell!"
Monoid ByteArrayDefined in base-4.20.2.0 · Data.Array.ByteMonoid BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalMonoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeMonoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalMonoid ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalMonoid IntSetDefined in containers-0.7 · Data.IntSet.InternalMonoid AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid EventDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesMonoid EventLifetimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesMonoid LifetimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.Typesmappend takes the longer of two lifetimes.
Monoid ExceptionContextDefined in ghc-internal-9.1003.0 · GHC.Internal.Exception.ContextMonoid OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid OsStringDefined in os-string-2.0.7 · System.OsString.Internal.Types"String-Concatenation" for OsString. This is not the same
as (</>).
Monoid PosixStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesMonoid WindowsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesMonoid DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJMonoid TextDefined in text-2.1.3 · Data.Text · orphanMonoid BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderMonoid TextDefined in text-2.1.3 · Data.Text.Lazy · orphanMonoid StrictTextBuilderDefined in text-2.1.3 · Data.Text.Internal.StrictBuilderMonoid CalendarDiffDaysDefined in time-1.12.2 · Data.Time.Calendar.CalendarDiffDaysAdditive
Monoid CalendarDiffTimeDefined in time-1.12.2 · Data.Time.LocalTime.Internal.CalendarDiffTimeAdditive
Monoid ()Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid (Comparison a)Defined in base-4.20.2.0 · Data.Functor.ContravariantMonoid (Equivalence a)Defined in base-4.20.2.0 · Data.Functor.ContravariantMonoid (Predicate a)Defined in base-4.20.2.0 · Data.Functor.ContravariantMonoid (PutM ())Defined in binary-0.8.9.3 · Data.Binary.PutMonoid (IntMap a)Defined in containers-0.7 · Data.IntMap.InternalMonoid (Seq a)Defined in containers-0.7 · Data.Sequence.InternalMonoid (MergeSet a)Defined in containers-0.7 · Data.Set.InternalMonoid (DList a)Defined in dlist-1.0 · Data.DList.InternalMonoid (First a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonoid (Last a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonoid (Endo a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJMonoid (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayMonoid (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayMonoid (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonoid (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugMonoid (Vector a)Defined in vector-0.13.2.0 · Data.VectorMonoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictMonoid [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid a => Monoid (STM a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncMonoid a => Monoid (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityMonoid a => Monoid (Down a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdMonoid a => Monoid (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid a => Monoid (IO a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid a => Monoid (Q a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxMonoid a => Monoid (a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid m => Monoid (WrappedMonoid m)Defined in base-4.20.2.0 · Data.SemigroupMonoid p => Monoid (Par1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup a => Monoid (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseLift a semigroup into Maybe forming a Monoid according to
http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be
turned into a monoid simply by adjoining an element e not in S
and defining e*e = e and e*s = s = s*e for all s ∈ S."
Since 4.11.0: constraint on inner a value generalised from
Monoid to Semigroup.
Bits a => Monoid (Ior a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsBits a => Monoid (Xor a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsFiniteBits a => Monoid (And a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However,
as some types (such as Natural) have undefined complement, this is the
only safe choice.
FiniteBits a => Monoid (Iff a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsThis constraint is arguably
too strong. However, as some types (such as Natural) have undefined
complement, this is the only safe choice.
Storable a => Monoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StorableNum a => Monoid (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Monoid (Set a)Defined in containers-0.7 · Data.Set.InternalOrd a => Monoid (Max a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsOrd a => Monoid (Min a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsHashable a => Monoid (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalPrim a => Monoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.PrimitiveUnbox a => Monoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphan(Generic a, Monoid (Rep a ())) => Monoid (Generically a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Generic a, GMonoid (Rep a)) => Monoid (GenericSemigroupMonoid a)Defined in semigroups-0.20 · Data.Semigroup.Generic(Ord a, Bounded a) => Monoid (Max a)Defined in base-4.20.2.0 · Data.Semigroup(Ord a, Bounded a) => Monoid (Min a)Defined in base-4.20.2.0 · Data.SemigroupMonoid (Alt f a)Defined in free-5.2 · Control.Alternative.FreeMonoid (Alt f a)Defined in free-5.2 · Control.Alternative.Free.FinalMonoid (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonoid (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonoid a => Monoid (Op a b)Defined in base-4.20.2.0 · Data.Functor.Contravariantmempty @(Op a b) without newtypes is mempty @(b->a)
= _ -> mempty.
mempty :: Op a b
mempty = Op _ -> mempty
Monoid a => Monoid (ST s a)Defined in ghc-internal-9.1003.0 · GHC.Internal.STMonoid b => Monoid (a -> b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid e => Monoid (Validation e a)Defined in either-5.0.3 · Data.Either.ValidationOrd k => Monoid (Map k v)Defined in containers-0.7 · Data.Map.InternalHashable k => Monoid (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(Monad m, Semigroup a, Monoid a) => Monoid (IterT m a)Defined in free-5.2 · Control.Monad.Trans.Iter(Monoid a, Monoid b) => Monoid (a, b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseAlternative f => Monoid (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Monoid (Traversed a f)Defined in indexed-traversable-0.1.4 · WithIndexMonad m => Monoid (Sequenced a m)Defined in indexed-traversable-0.1.4 · WithIndexMonoid (f p) => Monoid (Rec1 f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonoid a => Monoid (Const a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstMonoid a => Monoid (Constant a b)Defined in transformers-0.6.1.1 · Data.Functor.ConstantArrowPlus p => Monoid (Tambara p a b)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Biapplicative bi, Monoid a, Monoid b) => Monoid (Biap bi a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biap(Applicative f, Monoid a) => Monoid (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoid(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Base(Semigroup a, Monoid a) => Monoid (Tagged s a)Defined in tagged-0.8.9 · Data.Tagged(Profunctor p, Arrow p, Semigroup b, Monoid b) => Monoid (Closure p a b)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedMonoid c => Monoid (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonoid r => Monoid (Forget r a b)Defined in profunctors-5.6.3 · Data.Profunctor.TypesVia Monoid r => (a -> r)
(Monoid (f a), Monoid (g a)) => Monoid (Product f g a)Defined in base-4.20.2.0 · Data.Functor.Product(Monoid (f p), Monoid (g p)) => Monoid ((:*:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid (f (g a)) => Monoid (Compose f g a)Defined in base-4.20.2.0 · Data.Functor.ComposeMonoid (f (g p)) => Monoid ((:.:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonoid (f p) => Monoid (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseThe Ord class is used for totally ordered datatypes.
Instances of Ord can be derived for any user-defined datatype whose constituent types are in Ord. The declared order of the constructors in the data declaration determines the ordering in derived Ord instances. The Ordering datatype allows a single comparison to determine the precise ordering of two objects.
Ord, as defined by the Haskell report, implements a total order and has the following properties:
x <= y || y <= x
=
if
x <= y && y <= z
=
, then
x <= z
=
x <= x
=
if
x <= y && y <= x
=
, then
x == y
=
The following operator interactions are expected to hold:
x >= y = y <= x
x < y = x <= y && x /= y
x > y = y < x
x < y = compare x y == LT
x > y = compare x y == GT
x == y = compare x y == EQ
min x y == if x <= y then x else y = True
max x y == if x >= y then x else y = True
Note that (7.) and (8.) do not require min and max to return either of
their arguments. The result is merely required to equal one of the
arguments in terms of (==).
Minimal complete definition: either compare or <=. Using compare can be more efficient for complex types.
Ord ByteArrayDefined in base-4.20.2.0 · Data.Array.ByteNon-lexicographic ordering. This compares the lengths of the byte arrays first and uses a lexicographic ordering if the lengths are equal. Subject to change between major versions.
Ord OptionsDefined in bifunctors-5.6.2 · Data.Bifunctor.THOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalOrd ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalLexicographic order.
Ord IntSetDefined in containers-0.7 · Data.IntSet.InternalOrd BigNatDefined in ghc-bignum-1.3 · GHC.Num.BigNatOrd IntegerDefined in ghc-bignum-1.3 · GHC.Num.IntegerOrd NaturalDefined in ghc-bignum-1.3 · GHC.Num.NaturalOrd ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeOrd VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseOrd ByteOrderDefined in ghc-internal-9.1003.0 · GHC.Internal.ByteOrderOrd ClosureTypeDefined in ghc-internal-9.1003.0 · GHC.Internal.ClosureTypesOrd BlockReasonDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncOrd ThreadIdDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncOrd ThreadStatusDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncOrd AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd SomeTypeRepDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Typeable.InternalOrd UniqueDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.UniqueOrd VersionDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.VersionOrd TimeoutKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.TimeOutOrd UniqueDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.UniqueOrd ErrorCallDefined in ghc-internal-9.1003.0 · GHC.Internal.ExceptionOrd ArithExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.Exception.TypeOrd FingerprintDefined in ghc-internal-9.1003.0 · GHC.Internal.Fingerprint.TypeOrd CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd IntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.PtrOrd WordPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.PtrOrd AssociativityDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd DecidedStrictnessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd FixityDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd SourceStrictnessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd SourceUnpackednessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd SeekModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.DeviceOrd ArrayExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd AsyncExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd BufferModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesOrd NewlineDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesOrd NewlineModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesOrd IOModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.IOModeOrd Int16Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd Int32Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd Int64Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd Int8Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd CBlkCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CBlkSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CCcDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CClockIdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CDevDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CFsBlkCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CFsFilCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CGidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CIdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CInoDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CModeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CNfdsDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CNlinkDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd COffDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CPidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CRLimDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CSocklenDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CSpeedDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CSsizeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CTcflagDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CTimerDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CUidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd FdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd SomeCharDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd SomeSymbolDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd SomeNatDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeNatsOrd GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeOrd Word16Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd Word32Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd Word64Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd Word8Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd BoolDefined in ghc-prim-0.12.0 · GHC.ClassesOrd CharDefined in ghc-prim-0.12.0 · GHC.ClassesOrd DoubleDefined in ghc-prim-0.12.0 · GHC.ClassesIEEE 754 Double-precision type includes not only numbers, but also
positive and negative infinities and a special element called NaN
(which can be quiet or signal).
IEEE 754-2008, section 5.11 requires that if at least one of arguments of
<=, <, >, >= is NaN then the result of the comparison is False,
and instance Ord Double complies with this requirement. This violates
the reflexivity: both NaN <= NaN and NaN >= NaN are False.
IEEE 754-2008, section 5.10 defines totalOrder predicate. Unfortunately,
compare on Doubles violates the IEEE standard and does not define a total order.
More specifically, both compare NaN x and compare x NaN always return GT.
Thus, users must be extremely cautious when using instance Ord Double.
For instance, one should avoid ordered containers with keys represented by Double,
because data loss and corruption may happen. An IEEE-compliant compare is available
in fp-ieee package as TotallyOrdered newtype.
Moving further, the behaviour of min and max with regards to NaN is
also non-compliant. IEEE 754-2008, section 5.3.1 defines that quiet NaN
should be treated as a missing data by minNum and maxNum functions,
for example, minNum(NaN, 1) = minNum(1, NaN) = 1. Some languages such as Java
deviate from the standard implementing minNum(NaN, 1) = minNum(1, NaN) = NaN.
However, min / max in base are even worse: min NaN 1 is 1, but min 1 NaN
is NaN.
IEEE 754-2008 compliant min / max can be found in ieee754 package under
minNum / maxNum names. Implementations compliant with
minimumNumber / maximumNumber from a newer
IEEE 754-2019,
section 9.6 are available from fp-ieee package.
Ord FloatDefined in ghc-prim-0.12.0 · GHC.ClassesOrd IntDefined in ghc-prim-0.12.0 · GHC.ClassesOrd OrderingDefined in ghc-prim-0.12.0 · GHC.ClassesOrd TyConDefined in ghc-prim-0.12.0 · GHC.ClassesOrd WordDefined in ghc-prim-0.12.0 · GHC.ClassesOrd OptionsDefined in invariant-0.6.4 · Data.Functor.Invariant.THOrd InvariantClassDefined in invariant-0.6.4 · Data.Functor.Invariant.TH.InternalOrd OsCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesByte ordering of the internal representation.
Ord OsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesByte ordering of the internal representation.
Ord PosixCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd PosixStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd WindowsCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd WindowsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassOrd PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassOrd CardinalityDefined in random-1.2.1.3 · System.Random.GFiniteOrd ScientificDefined in scientific-0.3.8.0 · Data.ScientificScientific numbers can be safely compared for ordering. No magnitude 10^e
is calculated so there's no risk of a blowup in space or time when comparing
scientific numbers coming from untrusted sources.
Ord AnnLookupDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd AnnTargetDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BangDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BndrVisDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BodyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BytesDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd CallconvDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ClauseDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ConDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DecDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DecidedStrictnessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DerivClauseDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DerivStrategyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DocLocDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ExpDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FamilyResultSigDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FixityDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FixityDirectionDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ForeignDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FunDepDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd GuardDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd InfoDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd InjectivityAnnDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd InlineDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd LitDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd LocDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd MatchDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ModNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ModuleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ModuleInfoDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NameFlavourDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NameSpaceDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NamespaceSpecifierDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd OccNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd OverlapDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PatDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PatSynArgsDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PatSynDirDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PhasesDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PkgNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PragmaDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RangeDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RoleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RuleBndrDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RuleMatchDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SafetyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SourceStrictnessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SourceUnpackednessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SpecificityDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd StmtDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TyLitDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TySynEqnDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TypeDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TypeFamilyHeadDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd I8Defined in text-2.1.3 · Data.Text.ForeignOrd TextDefined in text-2.1.3 · Data.Text · orphanOrd BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderOrd TextDefined in text-2.1.3 · Data.Text.Lazy · orphanOrd ConstructorVariantDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd DatatypeVariantDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd FieldStrictnessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd StrictnessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd UnpackednessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd DayDefined in time-1.12.2 · Data.Time.Calendar.DaysOrd MonthDefined in time-1.12.2 · Data.Time.Calendar.MonthOrd QuarterDefined in time-1.12.2 · Data.Time.Calendar.QuarterOrd QuarterOfYearDefined in time-1.12.2 · Data.Time.Calendar.QuarterOrd DayOfWeekDefined in time-1.12.2 · Data.Time.Calendar.WeekOrd AbsoluteTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.AbsoluteTimeOrd DiffTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.DiffTimeOrd NominalDiffTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.NominalDiffTimeOrd SystemTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.SystemTimeOrd UTCTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.UTCTimeOrd UniversalTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.UniversalTimeOrd TimeLocaleDefined in time-1.12.2 · Data.Time.Format.LocaleOrd LocalTimeDefined in time-1.12.2 · Data.Time.LocalTime.Internal.LocalTimeOrd TimeOfDayDefined in time-1.12.2 · Data.Time.LocalTime.Internal.TimeOfDayOrd TimeZoneDefined in time-1.12.2 · Data.Time.LocalTime.Internal.TimeZoneOrd UUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalOrd UnpackedUUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalOrd ()Defined in ghc-prim-0.12.0 · GHC.ClassesIntegral a => Ord (Ratio a)Defined in ghc-internal-9.1003.0 · GHC.Internal.RealOrd (ConstPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.ConstPtrOrd (ForeignPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ForeignPtrOrd (FunPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.PtrOrd (Ptr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.PtrOrd (SChar c)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd (SSymbol s)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd (SNat n)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeNatsOrd a => Ord (First a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (Last a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (Max a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (Min a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (IntMap a)Defined in containers-0.7 · Data.IntMap.InternalOrd a => Ord (Seq a)Defined in containers-0.7 · Data.Sequence.InternalOrd a => Ord (ViewL a)Defined in containers-0.7 · Data.Sequence.InternalOrd a => Ord (ViewR a)Defined in containers-0.7 · Data.Sequence.InternalOrd a => Ord (Intersection a)Defined in containers-0.7 · Data.Set.InternalOrd a => Ord (Set a)Defined in containers-0.7 · Data.Set.InternalOrd a => Ord (Tree a)Defined in containers-0.7 · Data.TreeOrd a => Ord (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalOrd a => Ord (DList a)Defined in dlist-1.0 · Data.DList.InternalOrd a => Ord (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseOrd a => Ord (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityOrd a => Ord (First a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidOrd a => Ord (Last a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidOrd a => Ord (Down a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdOrd a => Ord (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (ZipList a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListOrd a => Ord (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeOrd a => Ord (Hashed a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassOrd a => Ord (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayLexicographic ordering. Subject to change between major versions.
Ord a => Ord (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayLexicographic ordering. Subject to change between major versions.
Ord a => Ord (Stream a)Defined in text-2.1.3 · Data.Text.Internal.Fusion.TypesOrd a => Ord (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalOrd a => Ord (Vector a)Defined in vector-0.13.2.0 · Data.VectorOrd a => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictOrd a => Ord (a)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd a => Ord [a]Defined in ghc-prim-0.12.0 · GHC.ClassesOrd flag => Ord (TyVarBndr flag)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd g => Ord (StateGen g)Defined in random-1.2.1.3 · System.Random.InternalOrd g => Ord (AtomicGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd g => Ord (IOGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd g => Ord (STGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd g => Ord (TGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd m => Ord (WrappedMonoid m)Defined in base-4.20.2.0 · Data.SemigroupOrd p => Ord (Par1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Storable a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Ord a, Prim a) => Ord (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayLexicographic ordering. Subject to change between major versions.
(Prim a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Unbox a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphanOrd (Fixed a)Defined in base-4.20.2.0 · Data.FixedOrd (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyOrd (TypeRep a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Typeable.InternalOrd (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd a => Ord (Arg a b)Defined in base-4.20.2.0 · Data.SemigroupOrd m => Ord (Over m a)Defined in selective-0.7.0.1 · Control.SelectiveOrd m => Ord (Under m a)Defined in selective-0.7.0.1 · Control.SelectiveOrd m => Ord (Over m a)Defined in selective-0.7.0.1 · Control.Selective.MultiOrd m => Ord (Under m a)Defined in selective-0.7.0.1 · Control.Selective.Multi(Ord1 f, Ord a) => Ord (Ap f a)Defined in free-5.2 · Control.Applicative.Free(Ord1 f, Ord a) => Ord (Cofree f a)Defined in free-5.2 · Control.Comonad.Cofree(Ord1 f, Ord a) => Ord (Free f a)Defined in free-5.2 · Control.Monad.Free(Ord1 f, Ord a) => Ord (Free f a)Defined in free-5.2 · Control.Monad.Free.Ap(Ord1 f, Ord a) => Ord (Coyoneda f a)Defined in kan-extensions-5.2.7 · Data.Functor.Coyoneda(Ord1 f, Ord a) => Ord (Yoneda f a)Defined in kan-extensions-5.2.7 · Data.Functor.Yoneda(Ord1 f, Ord a) => Ord (Lift f a)Defined in transformers-0.6.1.1 · Control.Applicative.Lift(Ord1 m, Ord a) => Ord (IterT m a)Defined in free-5.2 · Control.Monad.Trans.Iter(Ord1 m, Ord a) => Ord (MaybeT m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Maybe(Ord1 w, Ord a) => Ord (CoiterT w a)Defined in free-5.2 · Control.Comonad.Trans.Coiter(Ix i, Ord e) => Ord (Array i e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Arr(Ix ix, Ord e, IArray UArray e) => Ord (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(Ord a, Ord b) => Ord (Either a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Either(Ord a, Ord b) => Ord (a, b)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord e, Ord a) => Ord (Validation e a)Defined in either-5.0.3 · Data.Either.Validation(Ord e, Ord a) => Ord (Validation e a)Defined in selective-0.7.0.1 · Control.Selective(Ord k, Ord v) => Ord (Map k v)Defined in containers-0.7 · Data.Map.Internal(Ord k, Ord v) => Ord (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalThe ordering is total and consistent with the Eq instance. However,
nothing else about the ordering is specified, and it may change from
version to version of either this package or of hashable.
(GOrd (Rep1 f a), Generic1 f) => Ord (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd (Coercion a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.CoercionOrd (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec (Ptr ()) p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (a :~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.EqualityOrd (bi a b) => Ord (Biap bi a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapOrd (f a) => Ord (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidOrd (f a) => Ord (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd (f a) => Ord (WrappedContravariant f a)Defined in invariant-0.6.4 · Data.Functor.InvariantOrd (f a) => Ord (WrappedFunctor f a)Defined in invariant-0.6.4 · Data.Functor.InvariantOrd (f p) => Ord (Rec1 f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (p (Fix p a) a) => Ord (Fix p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixOrd (p a a) => Ord (Join p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinOrd (w (CofreeF f a (CofreeT f w a))) => Ord (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.CofreeOrd a => Ord (Const a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstOrd a => Ord (Constant a b)Defined in transformers-0.6.1.1 · Data.Functor.ConstantOrd a => Ord (Bundle Id v a)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle · orphanOrd b => Ord (Tagged s b)Defined in tagged-0.8.9 · Data.Tagged(Ord1 f, Ord1 m, Ord a) => Ord (FreeT f m a)Defined in free-5.2 · Control.Monad.Trans.Free(Ord1 f, Ord1 m, Ord a) => Ord (FreeT f m a)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Ord1 f, Ord a) => Ord (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Ord1 f, Ord a) => Ord (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Ord1 f, Ord a) => Ord (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.Reverse(Ord1 f, Ord e, Ord a) => Ord (ExceptT e f a)Defined in selective-0.7.0.1 · Control.Selective.Trans.Except(Functor f, Monad m, Ord1 f, Ord1 m, Ord a) => Ord (FT f m a)Defined in free-5.2 · Control.Monad.Trans.Free.Church(Generic1 f, Ord (Rep1 f a)) => Ord (Generically1 f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord a, Ord (f b)) => Ord (CofreeF f a b)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Ord a, Ord (f b)) => Ord (FreeF f a b)Defined in free-5.2 · Control.Monad.Trans.Free(Ord a, Ord (f b)) => Ord (FreeF f a b)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Ord a, Ord b, Ord c) => Ord (a, b, c)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord e, Ord1 m, Ord a) => Ord (ExceptT e m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Except(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.StrictOrd (a :~~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.EqualityOrd c => Ord (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord (f a), Ord (g a)) => Ord (Product f g a)Defined in base-4.20.2.0 · Data.Functor.Product(Ord (f a), Ord (g a)) => Ord (Sum f g a)Defined in base-4.20.2.0 · Data.Functor.Sum(Ord (f p), Ord (g p)) => Ord ((:*:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord (f p), Ord (g p)) => Ord ((:+:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd (f (g a)) => Ord (Compose f g a)Defined in base-4.20.2.0 · Data.Functor.ComposeOrd (f (g p)) => Ord ((:.:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (f a) => Ord (Clown f a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownOrd (f p) => Ord (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (g b) => Ord (Joker g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerOrd (p a b) => Ord (WrappedBifunctor p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedOrd (p a b) => Ord (WrappedProfunctor p a b)Defined in invariant-0.6.4 · Data.Functor.InvariantOrd (p b a) => Ord (Flip p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord (f a b), Ord (g a b)) => Ord (Product f g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Ord (p a b), Ord (q a b)) => Ord (Sum p q a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f) => Ord (a, b, c, d, e, f)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd (f (p a b)) => Ord (Tannen f p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g) => Ord (a, b, c, d, e, f, g)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h) => Ord (a, b, c, d, e, f, g, h)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd (p (f a) (g b)) => Ord (Biff p f g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i) => Ord (a, b, c, d, e, f, g, h, i)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j) => Ord (a, b, c, d, e, f, g, h, i, j)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k) => Ord (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l) => Ord (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m, Ord n) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m, Ord n, Ord o) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-prim-0.12.0 · GHC.ClassesThe class of semigroups (types with an associative binary operation).
Instances should satisfy the following:
You can alternatively define sconcat instead of (<>), in which case the laws are:
(<>) :: a -> a -> ainfixr 6An associative operation.
[1,2,3] <> [4,5,6][1,2,3,4,5,6]
Just [1, 2, 3] <> Just [4, 5, 6]Just [1,2,3,4,5,6]
putStr "Hello, " <> putStrLn "World!"Hello, World!
sconcat :: NonEmpty a -> aReduce a non-empty list with <>
The default definition should be sufficient, but this can be overridden for efficiency.
For the following examples, we will assume that we have:
import Data.List.NonEmpty (NonEmpty (..))sconcat $ "Hello" :| [" ", "Haskell", "!"]"Hello Haskell!"
sconcat $ Just [1, 2, 3] :| [Nothing, Just [4, 5, 6]]Just [1,2,3,4,5,6]
sconcat $ Left 1 :| [Right 2, Left 3, Right 4]Right 2
stimes :: Integral b => b -> a -> aRepeat a value n times.
The default definition will raise an exception for a multiplier that is <= 0.
This may be overridden with an implementation that is total. For monoids
it is preferred to use stimesMonoid.
By making this a member of the class, idempotent semigroups
and monoids can upgrade this to execute in \mathcal{O}(1) by
picking stimes = stimesIdempotent or stimes =
stimesIdempotentMonoid respectively.
stimes 4 [1][1,1,1,1]
stimes 5 (putStr "hi!")hi!hi!hi!hi!hi!
stimes 3 (Right ":)")Right ":)"
Semigroup ByteArrayDefined in base-4.20.2.0 · Data.Array.ByteSemigroup BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalSemigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeSemigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalSemigroup ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalSemigroup IntSetDefined in containers-0.7 · Data.IntSet.InternalSemigroup VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup EventDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesSemigroup EventLifetimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesSemigroup LifetimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.Internal.TypesSemigroup ExceptionContextDefined in ghc-internal-9.1003.0 · GHC.Internal.Exception.ContextSemigroup OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup OsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesSemigroup PosixStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesSemigroup WindowsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesSemigroup DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJSemigroup TextDefined in text-2.1.3 · Data.Text · orphanBeware: stimes will crash if the given number does not fit into
an Int.
Semigroup BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderSemigroup TextDefined in text-2.1.3 · Data.Text.Lazy · orphanSemigroup StrictTextBuilderDefined in text-2.1.3 · Data.Text.Internal.StrictBuilderConcatenation of StrictBuilder is right-biased: the right builder will be run first. This allows a builder to run tail-recursively when it was accumulated left-to-right.
Semigroup CalendarDiffDaysDefined in time-1.12.2 · Data.Time.Calendar.CalendarDiffDaysAdditive
Semigroup CalendarDiffTimeDefined in time-1.12.2 · Data.Time.LocalTime.Internal.CalendarDiffTimeAdditive
Semigroup ()Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid m => Semigroup (WrappedMonoid m)Defined in base-4.20.2.0 · Data.SemigroupSemigroup (FromMaybe b)Defined in base-4.20.2.0 · Data.Foldable1Semigroup (NonEmptyDList a)Defined in base-4.20.2.0 · Data.Foldable1Semigroup (Comparison a)Defined in base-4.20.2.0 · Data.Functor.ContravariantSemigroup (Equivalence a)Defined in base-4.20.2.0 · Data.Functor.ContravariantSemigroup (Predicate a)Defined in base-4.20.2.0 · Data.Functor.ContravariantSemigroup (First a)Defined in base-4.20.2.0 · Data.SemigroupSemigroup (Last a)Defined in base-4.20.2.0 · Data.SemigroupSemigroup (PutM ())Defined in binary-0.8.9.3 · Data.Binary.PutSemigroup (IntMap a)Defined in containers-0.7 · Data.IntMap.InternalSemigroup (Seq a)Defined in containers-0.7 · Data.Sequence.InternalSemigroup (MergeSet a)Defined in containers-0.7 · Data.Set.InternalSemigroup (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalSemigroup (DList a)Defined in dlist-1.0 · Data.DList.InternalSemigroup (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup (First a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidSemigroup (Last a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidSemigroup (Endo a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup (FromMaybe b)Defined in indexed-traversable-0.1.4 · WithIndexSemigroup (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJSemigroup (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArraySemigroup (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArraySemigroup (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArraySemigroup (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugSemigroup (Vector a)Defined in vector-0.13.2.0 · Data.VectorSemigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictSemigroup [a]Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup a => Semigroup (JoinWith a)Defined in base-4.20.2.0 · Data.Foldable1Semigroup a => Semigroup (STM a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncSemigroup a => Semigroup (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentitySemigroup a => Semigroup (Down a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdSemigroup a => Semigroup (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup a => Semigroup (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup a => Semigroup (IO a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup a => Semigroup (JoinWith a)Defined in semigroupoids-6.0.1 · Data.Semigroup.FoldableSemigroup a => Semigroup (Q a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxSemigroup a => Semigroup (a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup p => Semigroup (Par1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsBits a => Semigroup (And a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsBits a => Semigroup (Ior a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsBits a => Semigroup (Xor a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsFiniteBits a => Semigroup (Iff a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.BitsThis constraint is arguably
too strong. However, as some types (such as Natural) have undefined
complement, this is the only safe choice.
Storable a => Semigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StorableNum a => Semigroup (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalNum a => Semigroup (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Semigroup (Max a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Semigroup (Min a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Semigroup (Intersection a)Defined in containers-0.7 · Data.Set.InternalOrd a => Semigroup (Set a)Defined in containers-0.7 · Data.Set.InternalOrd a => Semigroup (Max a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsOrd a => Semigroup (Min a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.UtilsHashable a => Semigroup (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalPrim a => Semigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.PrimitiveUnbox a => Semigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphan(Generic a, Semigroup (Rep a ())) => Semigroup (Generically a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Generic a, GSemigroup (Rep a)) => Semigroup (GenericSemigroupMonoid a)Defined in semigroups-0.20 · Data.Semigroup.GenericSemigroup (Alt f a)Defined in free-5.2 · Control.Alternative.FreeSemigroup (Alt f a)Defined in free-5.2 · Control.Alternative.Free.FinalSemigroup (Either a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.EitherSemigroup (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxySemigroup (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Op a b)Defined in base-4.20.2.0 · Data.Functor.ContravariantSemigroup a => Semigroup (ST s a)Defined in ghc-internal-9.1003.0 · GHC.Internal.STSemigroup b => Semigroup (a -> b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup e => Semigroup (Validation e a)Defined in either-5.0.3 · Data.Either.ValidationOrd k => Semigroup (Map k v)Defined in containers-0.7 · Data.Map.InternalHashable k => Semigroup (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalAlt f => Semigroup (Alt_ f a)Defined in semigroupoids-6.0.1 · Data.Semigroup.FoldableApply f => Semigroup (Act f a)Defined in keys-3.12.3 · Data.KeyApply f => Semigroup (Act f a)Defined in semigroupoids-6.0.1 · Data.Semigroup.BifoldableApply f => Semigroup (Act f a)Defined in semigroupoids-6.0.1 · Data.Semigroup.Foldable(Monad m, Semigroup a) => Semigroup (IterT m a)Defined in free-5.2 · Control.Monad.Trans.Iter(Semigroup a, Semigroup b) => Semigroup (a, b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseAlternative f => Semigroup (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Semigroup (Traversed a f)Defined in indexed-traversable-0.1.4 · WithIndexMonad m => Semigroup (Sequenced a m)Defined in indexed-traversable-0.1.4 · WithIndexSemigroup (f p) => Semigroup (Rec1 f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Const a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstSemigroup a => Semigroup (Tagged s a)Defined in tagged-0.8.9 · Data.TaggedSemigroup a => Semigroup (Constant a b)Defined in transformers-0.6.1.1 · Data.Functor.ConstantArrowPlus p => Semigroup (Tambara p a b)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Biapplicative bi, Semigroup a, Semigroup b) => Semigroup (Biap bi a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biap(Applicative f, Semigroup a) => Semigroup (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoid(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Base(Profunctor p, Arrow p, Semigroup b) => Semigroup (Closure p a b)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedSemigroup c => Semigroup (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup r => Semigroup (Forget r a b)Defined in profunctors-5.6.3 · Data.Profunctor.TypesVia Semigroup r => (a -> r)
(Semigroup (f a), Semigroup (g a)) => Semigroup (Product f g a)Defined in base-4.20.2.0 · Data.Functor.Product(Semigroup (f p), Semigroup (g p)) => Semigroup ((:*:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup (f (g a)) => Semigroup (Compose f g a)Defined in base-4.20.2.0 · Data.Functor.ComposeSemigroup (f (g p)) => Semigroup ((:.:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup (f p) => Semigroup (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseString is an alias for a list of characters.
String constants in Haskell are values of type String.
That means if you write a string literal like "hello world",
it will have the type [Char], which is the same as String.
Note: You can ask the compiler to automatically infer different types
with the -XOverloadedStrings language extension, for example
"hello world" :: Text. See IsString for more information.
Because String is just a list of characters, you can use normal list functions
to do basic string manipulation. See Data.List for operations on lists.
[Char] is a relatively memory-inefficient type.
It is a linked list of boxed word-size characters, internally it looks something like:
╭─────┬───┬──╮ ╭─────┬───┬──╮ ╭─────┬───┬──╮ ╭────╮
│ (:) │ │ ─┼─>│ (:) │ │ ─┼─>│ (:) │ │ ─┼─>│ [] │
╰─────┴─┼─┴──╯ ╰─────┴─┼─┴──╯ ╰─────┴─┼─┴──╯ ╰────╯
v v v
'a' 'b' 'c'The String "abc" will use 5*3+1 = 16 (in general 5n+1)
words of space in memory.
Furthermore, operations like (++) (string concatenation) are O(n)
(in the left argument).
For historical reasons, the base library uses String in a lot of places
for the conceptual simplicity, but library code dealing with user-data
should use the text
package for Unicode text, or the the
bytestring package
for binary data.
A value of type IO a is a computation which, when performed,
does some I/O before returning a value of type a.
There is really only one way to "perform" an I/O action: bind it to
Main.main in your program. When your program is run, the I/O will
be performed. It isn't possible to perform I/O from an arbitrary
function, unless that function is itself in the IO monad and called
at some point, directly or indirectly, from Main.main.
IO is a monad, so IO actions can be combined using either the do-notation
or the Prelude.>> and Prelude.>>= operations from the Prelude.Monad
class.
Monad IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix IODefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFail IODefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FailApplicative IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseGHCiSandboxIO IODefined in ghc-internal-9.1003.0 · GHC.Internal.GHCiQuote IODefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxAlternative IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadPlus IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadIO IODefined in base-4.20.2.0 · Control.Monad.IO.ClassQuasi IODefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxMonadCatch IODefined in exceptions-0.10.9 · Control.Monad.CatchMonadMask IODefined in exceptions-0.10.9 · Control.Monad.CatchMonadThrow IODefined in exceptions-0.10.9 · Control.Monad.CatchPrimBase IODefined in primitive-0.9.1.0 · Control.Monad.PrimitivePrimMonad IODefined in primitive-0.9.1.0 · Control.Monad.PrimitiveAlt IODefined in semigroupoids-6.0.1 · Data.Functor.AltThis instance does not actually satisfy the (<.>) right distributive law It instead satisfies the "left catch" law
Apply IODefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind IODefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassPlus IODefined in semigroupoids-6.0.1 · Data.Functor.PlusInvariant IODefined in invariant-0.6.4 · Data.Functor.InvariantSelective IODefined in selective-0.7.0.1 · Control.SelectivePointed IODefined in pointed-5.0.4 · Data.PointedMonadError IOException IODefined in mtl-2.3.1 · Control.Monad.Error.ClassMonadBase IO IODefined in transformers-base-0.4.6 · Control.Monad.BaseMArray IOUArray Int16 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int32 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int64 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int8 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word16 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word32 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word64 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word8 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Bool IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Char IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Double IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Float IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOArray e IODefined in array-0.5.8.0 · Data.Array.BaseMArray TArray e IODefined in stm-2.5.3.1 · Control.Concurrent.STM.TArrayWrites are slow in IO.
Storable e => MArray StorableArray e IODefined in array-0.5.8.0 · Data.Array.Storable.InternalsMArray IOUArray (FunPtr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray (Ptr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray (StablePtr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsSemigroup a => Semigroup (IO a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid a => Monoid (IO a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Basea ~ () => HPrintfType (IO a)Defined in base-4.20.2.0 · Text.Printfa ~ () => PrintfType (IO a)Defined in base-4.20.2.0 · Text.PrintfHasGetter (IO a) aDefined in StateVar-1.2.2 · Data.StateVartype PrimState IO = RealWorldDefined in primitive-0.9.1.0 · Control.Monad.PrimitiveUninhabited data type
Eq VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseData VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseRead VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowIx VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.IxGeneric VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseException VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.Exception.TypeNFData VoidDefined in deepseq-1.5.0.0 · Control.DeepSeqFinite VoidDefined in random-1.2.1.3 · System.Random.GFiniteBinary VoidDefined in binary-0.8.9.3 · Data.Binary.ClassHashable VoidDefined in hashable-1.4.7.0 · Data.Hashable.ClassLift VoidDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxFoldableWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void U1Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void V1Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void U1Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void V1Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void U1Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void V1Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void (Const e)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void (Constant e)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void (Const e)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void (Constant e)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void (Const e)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void (Constant e)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.4 · WithIndextype Rep Void = D1 ('MetaData "Void"
"GHC.Internal.Base"
"ghc-internal"
'False) V1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsBounded WordDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEnum WordDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEq WordDefined in ghc-prim-0.12.0 · GHC.ClassesIntegral WordDefined in ghc-internal-9.1003.0 · GHC.Internal.RealData WordDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum WordDefined in ghc-internal-9.1003.0 · GHC.Internal.NumOrd WordDefined in ghc-prim-0.12.0 · GHC.ClassesRead WordDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadReal WordDefined in ghc-internal-9.1003.0 · GHC.Internal.RealShow WordDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowIx WordDefined in ghc-internal-9.1003.0 · GHC.Internal.IxBits WordDefined in ghc-internal-9.1003.0 · GHC.Internal.BitsFiniteBits WordDefined in ghc-internal-9.1003.0 · GHC.Internal.BitsStorable WordDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.StorablePrintfArg WordDefined in base-4.20.2.0 · Text.PrintfNFData WordDefined in deepseq-1.5.0.0 · Control.DeepSeqRandom WordDefined in random-1.2.1.3 · System.RandomFinite WordDefined in random-1.2.1.3 · System.Random.GFiniteUniform WordDefined in random-1.2.1.3 · System.Random.InternalUniformRange WordDefined in random-1.2.1.3 · System.Random.InternalBinary WordDefined in binary-0.8.9.3 · Data.Binary.ClassHashable WordDefined in hashable-1.4.7.0 · Data.Hashable.ClassPrim WordDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseDefault WordDefined in data-default-0.8.0.1 · Data.Default.InternalLift WordDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIArray UArray WordDefined in array-0.5.8.0 · Data.Array.BaseVector Vector WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMVector MVector WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Word IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Word)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldable UWordDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable UWordDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Word (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Word)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsShow (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (URec Word p) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just "uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (URec Word) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just "uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata URec WordDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsUsed for marking occurrences of Word#
data MVector s WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseThe kind of types with lifted values. For example Int :: Type.
Single-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE single-precision type.
Enum FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanfromEnum just truncates its argument, beware of all sorts of overflows.
List generators have extremely peculiar behavior, mandated by Haskell Report 2010:
[0..1.5 :: Float][0.0,1.0,2.0]
Eq FloatDefined in ghc-prim-0.12.0 · GHC.ClassesFloating FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.FloatFractional FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.
0 == (-0 :: Float)Truerecip 0 == recip (-0 :: Float)Falsemap (/ 0) [-1, 0, 1 :: Float][-Infinity,NaN,Infinity]map (* 0) $ map (/ 0) [-1, 0, 1 :: Float][NaN,NaN,NaN]
Data FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero. Neither addition nor multiplication are associative or distributive:
(0.1 + 0.1 :: Float) + 0.5 == 0.1 + (0.1 + 0.5)False(0.1 + 0.2 :: Float) * 0.9 == 0.1 * 0.9 + 0.2 * 0.9False(0.1 * 0.1 :: Float) * 0.9 == 0.1 * (0.1 * 0.9)False
Ord FloatDefined in ghc-prim-0.12.0 · GHC.ClassesRead FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadReal FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanBeware that toRational generates garbage for non-finite arguments:
toRational (1/0 :: Float)340282366920938463463374607431768211456 % 1toRational (0/0 :: Float)510423550381407695195061911147652317184 % 1
RealFloat FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.FloatRealFrac FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanBeware that results for non-finite arguments are garbage:
[ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0 :: Float] ] :: [Int][0,0,0,0,0,0,0,0,0]map properFraction [-1/0, 0/0, 1/0] :: [(Int, Float)][(0,0.0),(0,0.0),(0,0.0)]
and get even more non-sensical if you ask for Integer instead of Int.
Show FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanStorable FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.StorablePrintfArg FloatDefined in base-4.20.2.0 · Text.PrintfNFData FloatDefined in deepseq-1.5.0.0 · Control.DeepSeqPretty FloatDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty FloatDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassRandom FloatDefined in random-1.2.1.3 · System.RandomNote - random produces values in the closed range [0,1].
UniformRange FloatDefined in random-1.2.1.3 · System.Random.InternalBinary FloatDefined in binary-0.8.9.3 · Data.Binary.ClassUses non-IEEE754 encoding. Does not round-trip NaN.
Hashable FloatDefined in hashable-1.4.7.0 · Data.Hashable.ClassNote: prior to hashable-1.3.0.0, hash 0.0 /= hash (-0.0)
The hash of NaN is not well defined.
Prim FloatDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseDefault FloatDefined in data-default-0.8.0.1 · Data.Default.InternalLift FloatDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIArray UArray FloatDefined in array-0.5.8.0 · Data.Array.BaseVector Vector FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMVector MVector FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Float IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Float)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldable UFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable UFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Float (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Float)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsShow (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (URec Float p) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just "uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (URec Float) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just "uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata URec FloatDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsUsed for marking occurrences of Float#
data MVector s FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseEvaluate each action in the sequence from left to right, and collect the results.
Identity function.
id x = xThis function might seem useless at first glance, but it can be very useful in a higher order context.
length $ filter id [True, True, False, True]3
Just (Just 3) >>= idJust 3
foldr id 0 [(^3), (*5), (+2)]1000
foldr, applied to a binary operator, a starting value (typically the right-identity of the operator), and a list, reduces the list using the binary operator, from right to left:
foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)A monoid on applicative functors.
If defined, some and many should be the least solutions of the equations:
Nothing <|> Just 42Just 42
[1, 2] <|> [3, 4][1,2,3,4]
empty <|> print (2^15)32768
empty :: f aThe identity of <|>
empty <|> a == a
a <|> empty == a(<|>) :: f a -> f a -> f ainfixl 3An associative binary operation
some :: f a -> f [a]One or more.
some (putStr "la")lalalalalalalalala... * goes on forever *
some Nothingnothing
take 5 <$> some (Just 1)* hangs forever *
Note that this function can be used with Parsers based on
Applicatives. In that case some parser will attempt to
parse parser one or more times until it fails.
many :: f a -> f [a]Zero or more.
many (putStr "la")lalalalalalalalala... * goes on forever *
many NothingJust []
take 5 <$> many (Just 1)* hangs forever *
Note that this function can be used with Parsers based on
Applicatives. In that case many parser will attempt to
parse parser zero or more times until it fails.
Alternative GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalAlternative SeqDefined in containers-0.7 · Data.Sequence.InternalAlternative DListDefined in dlist-1.0 · Data.DList.InternalAlternative STMDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncAlternative ZipListDefined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListAlternative MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseAlternative PDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPAlternative ReadPDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPAlternative ReadPrecDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPrecAlternative IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseAlternative ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayAlternative SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayAlternative VectorDefined in vector-0.13.2.0 · Data.VectorAlternative VectorDefined in vector-0.13.2.0 · Data.Vector.StrictAlternative []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseCombines lists by concatenation, starting from the empty list.
Alternative ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyAlternative U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsAlternative (Alt f)Defined in free-5.2 · Control.Alternative.FreeAlternative (Alt f)Defined in free-5.2 · Control.Alternative.Free.FinalAlternative f => Alternative (F f)Defined in free-5.2 · Control.Monad.Free.ChurchThis violates the Alternative laws, handle with care.
Alternative f => Alternative (Coyoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.CoyonedaAlternative f => Alternative (Yoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.YonedaAlternative f => Alternative (WrappedApplicative f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassAlternative f => Alternative (Lift f)Defined in transformers-0.6.1.1 · Control.Applicative.LiftA combination is Pure only either part is.
Alternative v => Alternative (Free v)Defined in free-5.2 · Control.Monad.FreeThis violates the Alternative laws, handle with care.
Alternative v => Alternative (Free v)Defined in free-5.2 · Control.Monad.Free.ApThis violates the Alternative laws, handle with care.
Monad m => Alternative (CatchT m)Defined in exceptions-0.10.9 · Control.Monad.Catch.PureMonad m => Alternative (IterT m)Defined in free-5.2 · Control.Monad.Trans.IterMonadPlus m => Alternative (WrappedMonad m)Defined in base-4.20.2.0 · Control.ApplicativeArrowPlus a => Alternative (ArrowMonad a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Arrow(Functor m, Monad m) => Alternative (MaybeT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Maybe(Semigroup e, Monoid e) => Alternative (Validation e)Defined in either-5.0.3 · Data.Either.ValidationAlternative (bi a) => Alternative (Biap bi a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapAlternative f => Alternative (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidAlternative f => Alternative (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalAlternative f => Alternative (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsAlternative f => Alternative (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantAlternative f => Alternative (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsTry alternatives in the same order as f.
Alternative f => Alternative (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Alternative g => Alternative (ApT f g)Defined in free-5.2 · Control.Applicative.Trans.FreeAlternative m => Alternative (FT f m)Defined in free-5.2 · Control.Monad.Trans.Free.ChurchAlternative m => Alternative (Kleisli m a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowAlternative m => Alternative (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityAlternative m => Alternative (ReaderT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Reader(Applicative f, MonadPlus m) => Alternative (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Functor f, MonadPlus m) => Alternative (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free(Functor m, Monad m, Monoid e) => Alternative (ExceptT e m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Except(Functor m, MonadPlus m) => Alternative (SelectT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Select(Functor m, MonadPlus m) => Alternative (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.Lazy(Functor m, MonadPlus m) => Alternative (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.Strict(Functor m, MonadPlus m) => Alternative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.CPS(Monoid w, Alternative m) => Alternative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, Alternative m) => Alternative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Strict(Monoid w, Functor m, MonadPlus m) => Alternative (AccumT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Accum(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b)Defined in base-4.20.2.0 · Control.Applicative(Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Profunctor p, ArrowPlus p) => Alternative (Closure p a)Defined in profunctors-5.6.3 · Data.Profunctor.Closed(Profunctor p, ArrowPlus p) => Alternative (Tambara p a)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Selective f, Monoid e) => Alternative (ComposeEither f e)Defined in selective-0.7.0.1 · Control.Selective(Selective f, Monoid e) => Alternative (ExceptT e f)Defined in selective-0.7.0.1 · Control.Selective.Trans.ExceptAlternative f => Alternative (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Alternative f, Alternative g) => Alternative (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Alternative f, Alternative g) => Alternative (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(v ~~ v', Alternative v') => Alternative (Codensity v)Defined in kan-extensions-5.2.7 · Control.Monad.CodensityAlternative f => Alternative (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Alternative f, Applicative g) => Alternative (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Alternative f, Applicative g) => Alternative (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.CPS(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.StrictThe join function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.
'join bss' can be understood as the do expression
do bs <- bss
bs
join [[1, 2, 3], [4, 5, 6], [7, 8, 9]][1,2,3,4,5,6,7,8,9]
join (Just (Just 3))Just 3
A common use of join is to run an IO computation returned from
an GHC.Conc.STM transaction, since GHC.Conc.STM transactions
can't perform IO directly. Recall that
GHC.Internal.Conc.atomically :: STM a -> IO a
is used to run GHC.Conc.STM transactions atomically. So, by
specializing the types of GHC.Internal.Conc.atomically and join to
GHC.Internal.Conc.atomically :: STM (IO b) -> IO (IO b)
join :: IO (IO b) -> IO b
we can compose them as
join . GHC.Internal.Conc.atomically :: STM (IO b) -> IO b
to run an GHC.Conc.STM transaction and the IO action it
returns.
The call inline f arranges that f is inlined, regardless of
its size. More precisely, the call inline f rewrites to the
right-hand side of f's definition. This allows the programmer to
control inlining from a particular call site rather than the
definition site of the function (c.f. INLINE pragmas).
This inlining occurs regardless of the argument to the call or the
size of f's definition; it is unconditional. The main caveat is
that f's definition must be visible to the compiler; it is
therefore recommended to mark the function with an INLINABLE
pragma at its definition so that GHC guarantees to record its
unfolding regardless of size.
If no inlining takes place, the inline function expands to the identity function in Phase zero, so its use imposes no overhead.
The lazy function restrains strictness analysis a little. The
call lazy e means the same as e, but lazy has a magical
property so far as strictness analysis is concerned: it is lazy in
its first argument, even though its semantics is strict. After
strictness analysis has run, calls to lazy are inlined to be the
identity function.
This behaviour is occasionally useful when controlling evaluation
order. Notably, lazy is used in the library definition of
par:
par :: a -> b -> b
par x y = case (par# x) of _ -> lazy yIf lazy were not lazy, par would look strict in
y which would defeat the whole purpose of par.
An arbitrary machine address assumed to point outside the garbage-collected heap.
A variant of <*> with the types of the arguments reversed. It differs from
flip in that the effects are resolved in the order the arguments are
presented.(<*>)
(<**>) (print 1) (id <$ print 2)12
flip (<*>) (print 1) (id <$ print 2)21
ZipList [4, 5, 6] <**> ZipList [(+1), (*2), (/3)]ZipList {getZipList = [5.0,10.0,2.0]}
A boxed, unlifted datatype representing a region of raw memory in the garbage-collected heap, which is not scanned for pointers during garbage collection.
It is created by freezing a MutableByteArray# with unsafeFreezeByteArray#.
Freezing is essentially a no-op, as MutableByteArray# and ByteArray# share the same heap structure under the hood.
The immutable and mutable variants are commonly used for scenarios requiring high-performance data structures,
like Text, Primitive Vector, Unboxed Array, and ShortByteString.
Another application of fundamental importance is Integer, which is backed by ByteArray#.
The representation on the heap of a Byte Array is:
+------------+-----------------+-----------------------+
| | | |
| HEADER | SIZE (in bytes) | PAYLOAD |
| | | |
+------------+-----------------+-----------------------+To obtain a pointer to actual payload (e.g., for FFI purposes) use byteArrayContents# or mutableByteArrayContents#.
Alternatively, enabling the UnliftedFFITypes extension
allows to mention ByteArray# and MutableByteArray# in FFI type signatures directly.
Lift a function to actions.
Equivalent to Functor's fmap but implemented using only Applicative's methods:
liftA f a = pure f <*> a
As such this function may be used to implement a Functor instance from an Applicative one.
Using the Applicative instance for Lists:
liftA (+1) [1, 2][2,3]
Or the Applicative instance for Maybe
liftA (+1) (Just 3)Just 4
Lift a ternary function to actions.
Primitive bytecode type.
A mutable ByteAray#. It can be created in three ways:
newByteArray#: Create an unpinned array.
newPinnedByteArray#: This will create a pinned array,
newAlignedPinnedByteArray#: This will create a pinned array, with a custom alignment.
Unpinned arrays can be moved around during garbage collection, so you must not store or pass pointers to these values if there is a chance for the garbage collector to kick in. That said, even unpinned arrays can be passed to unsafe FFI calls, because no garbage collection happens during these unsafe calls (see Guaranteed Call Safety in the GHC Manual). For safe FFI calls, byte arrays must be not only pinned, but also kept alive by means of the keepAlive# function for the duration of a call (that's because garbage collection cannot move a pinned array, but is free to scrap it altogether).
Monads that also support choice and failure.
MonadPlus GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalMonadPlus SeqDefined in containers-0.7 · Data.Sequence.InternalMonadPlus DListDefined in dlist-1.0 · Data.DList.InternalMonadPlus STMDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncMonadPlus MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadPlus PDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPMonadPlus ReadPDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPMonadPlus ReadPrecDefined in ghc-internal-9.1003.0 · GHC.Internal.Text.ParserCombinators.ReadPrecMonadPlus IODefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadPlus ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadPlus SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadPlus VectorDefined in vector-0.13.2.0 · Data.VectorMonadPlus VectorDefined in vector-0.13.2.0 · Data.Vector.StrictMonadPlus []Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseCombines lists by concatenation, starting from the empty list.
Monad m => MonadPlus (CatchT m)Defined in exceptions-0.10.9 · Control.Monad.Catch.PureMonad m => MonadPlus (IterT m)Defined in free-5.2 · Control.Monad.Trans.IterCapretta's race combinator. Satisfies left catch.
Monad m => MonadPlus (MaybeT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.MaybeMonadPlus ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonadPlus U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus f => MonadPlus (F f)Defined in free-5.2 · Control.Monad.Free.ChurchThis violates the MonadPlus laws, handle with care.
MonadPlus f => MonadPlus (Coyoneda f)Defined in kan-extensions-5.2.7 · Data.Functor.CoyonedaMonadPlus m => MonadPlus (Yoneda m)Defined in kan-extensions-5.2.7 · Data.Functor.YonedaMonadPlus v => MonadPlus (Free v)Defined in free-5.2 · Control.Monad.FreeThis violates the MonadPlus laws, handle with care.
MonadPlus v => MonadPlus (Free v)Defined in free-5.2 · Control.Monad.Free.ApThis violates the MonadPlus laws, handle with care.
(ArrowApply a, ArrowPlus a) => MonadPlus (ArrowMonad a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowMonadPlus (bi a) => MonadPlus (Biap bi a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapMonadPlus f => MonadPlus (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonadPlus f => MonadPlus (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadPlus f => MonadPlus (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus m => MonadPlus (FT f m)Defined in free-5.2 · Control.Monad.Trans.Free.ChurchMonadPlus m => MonadPlus (Kleisli m a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowMonadPlus m => MonadPlus (WrappedFunctor m)Defined in invariant-0.6.4 · Data.Functor.InvariantMonadPlus m => MonadPlus (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonadPlus m => MonadPlus (ReaderT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ReaderMonadPlus m => MonadPlus (SelectT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.SelectMonadPlus m => MonadPlus (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.LazyMonadPlus m => MonadPlus (StateT s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.State.StrictMonadPlus m => MonadPlus (Reverse m)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
(Applicative f, MonadPlus m) => MonadPlus (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Functor f, MonadPlus m) => MonadPlus (FreeT f m)Defined in free-5.2 · Control.Monad.Trans.Free(Functor m, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.CPS(Monad m, Monoid e) => MonadPlus (ExceptT e m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Except(Monoid w, Functor m, MonadPlus m) => MonadPlus (AccumT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Accum(Monoid w, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Strict(Selective f, Monoid e, Monad f) => MonadPlus (ExceptT e f)Defined in selective-0.7.0.1 · Control.Selective.Trans.ExceptMonadPlus f => MonadPlus (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(MonadPlus f, MonadPlus g) => MonadPlus (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(v ~~ v', Alternative v') => MonadPlus (Codensity v)Defined in kan-extensions-5.2.7 · Control.Monad.CodensityMonadPlus f => MonadPlus (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Functor m, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.CPS(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.StrictA shared mutable variable (not the same as a MutVar#!).
(Note: in a non-concurrent implementation, ( can be
represented by MVar# a)(.) MutVar# (Maybe a))
A shared I/O port is almost the same as an MVar#.
The main difference is that IOPort has no deadlock detection or
deadlock breaking code that forcibly releases the lock.
const x y always evaluates to x, ignoring its second argument.
const x = \_ -> xThis function might seem useless at first glance, but it can be very useful in a higher order context.
const 42 "hello"42
map (const 42) [0..3][42,42,42,42]
A MutVar# behaves like a single-element mutable array.
RealWorld is deeply magical. It is primitive, but it is not
unlifted (hence ptrArg). We never manipulate values of type
RealWorld; it's only used in the type system, to parameterise State#.
Promote a function to a monad, scanning the monadic arguments from left to right.
liftM2 (+) [0,1] [0,2][0,2,1,3]
liftM2 (+) (Just 1) NothingNothing
liftM2 (+) (+ 3) (* 2) 518
State# is the primitive, unlifted type of states. It has
one type parameter, thus , or State# RealWorld,
where s is a type variable. The only purpose of the type parameter
is to keep different state threads separate. It is represented by
nothing at all. State# s
The type constructor Proxy# is used to bear witness to some
type variable. It's used when you want to pass around proxy values
for doing things like modelling type applications. A Proxy#
is not only unboxed, it also has a polymorphic kind, and has no
runtime representation, being totally free.
(In a non-concurrent implementation, this can be a singleton
type, whose (unique) value is returned by myThreadId#. The
other operations can be omitted.)
Haskell representation of a StgStack* that was created (cloned)
with a function in GHC.Stack.CloneStack. Please check the
documentation in that module for more detailed explanations.
See GHC.Prim#continuations.
The builtin function type, written in infix form as a % m -> b.
Values of this type are functions taking inputs of type a and
producing outputs of type b. The multiplicity of the input is
m.
Note that permits representation polymorphism in both
FUN m a ba and b, so that types like can still be
well-kinded.Int# -> Int#
Category (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.CategorySemigroupoid (->)Defined in semigroupoids-6.0.1 · Data.SemigroupoidOb (->) aDefined in semigroupoids-6.0.1 · Data.Semigroupoid.ObMonadReader r ((->) r)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassFunctorWithIndex r ((->) r)Defined in indexed-traversable-0.1.4 · WithIndexMonoid m => ComonadTraced m ((->) m)Defined in comonad-5.0.9 · Control.Comonad.Traced.ClassAdjunction (Tuple2 e) ((->) e)Defined in adjunctions-4.4.3 · Data.Functor.AdjunctionShow (a -> b)Defined in base-4.20.2.0 · Text.Show.Functions · orphanSemigroup b => Semigroup (a -> b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid b => Monoid (a -> b)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseArrow (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowArrowApply (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowArrowChoice (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowArrowLoop (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Arrow(PrintfArg a, HPrintfType r) => HPrintfType (a -> r)Defined in base-4.20.2.0 · Text.Printf(PrintfArg a, PrintfType r) => PrintfType (a -> r)Defined in base-4.20.2.0 · Text.PrintfNFData (a -> b)Defined in deepseq-1.5.0.0 · Control.DeepSeqThis instance is for convenience and consistency with seq. This assumes that WHNF is equivalent to NF for functions.
Choice (->)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceCochoice (->)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceClosed (->)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedMapping (->)Defined in profunctors-5.6.3 · Data.Profunctor.MappingCostrong (->)Defined in profunctors-5.6.3 · Data.Profunctor.StrongStrong (->)Defined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctor (->)Defined in profunctors-5.6.3 · Data.Profunctor.UnsafeTraversing (->)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingCorepresentable (->)Defined in profunctors-5.6.3 · Data.Profunctor.RepRepresentable (->)Defined in profunctors-5.6.3 · Data.Profunctor.RepInvariant2 (->)Defined in invariant-0.6.4 · Data.Functor.InvariantAbelian b => Abelian (a -> b)Defined in groups-0.5.3 · Data.GroupGroup b => Group (a -> b)Defined in groups-0.5.3 · Data.GroupCosieve (->) IdentityDefined in profunctors-5.6.3 · Data.Profunctor.SieveSieve (->) IdentityDefined in profunctors-5.6.3 · Data.Profunctor.SieveMonad ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseDistributive ((->) e)Defined in distributive-0.6.2.1 · Data.DistributiveMonoid m => Comonad ((->) m)Defined in comonad-5.0.9 · Control.ComonadMonoid m => ComonadApply ((->) m)Defined in comonad-5.0.9 · Control.ComonadApply ((->) m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind ((->) m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassSemigroup m => Extend ((->) m)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendRepresentable ((->) e)Defined in adjunctions-4.4.3 · Data.Functor.RepInvariant ((->) a)Defined in invariant-0.6.4 · Data.Functor.InvariantSelective ((->) a)Defined in selective-0.7.0.1 · Control.SelectiveIndexable ((->) a)Defined in keys-3.12.3 · Data.KeyKeyed ((->) a)Defined in keys-3.12.3 · Data.KeyLookup ((->) a)Defined in keys-3.12.3 · Data.KeyZip ((->) a)Defined in keys-3.12.3 · Data.KeyZipWithKey ((->) a)Defined in keys-3.12.3 · Data.KeyDefault m => Copointed ((->) m)Defined in pointed-5.0.4 · Data.CopointedPointed ((->) e)Defined in pointed-5.0.4 · Data.PointedMonadBase ((->) r) ((->) r)Defined in transformers-base-0.4.6 · Control.Monad.Basetype Corep (->) = IdentityDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep (->) = IdentityDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep ((->) e) = eDefined in adjunctions-4.4.3 · Data.Functor.Reptype Key ((->) a) = aDefined in keys-3.12.3 · Data.KeyGeneric1 ComplexDefined in base-4.20.2.0 · Data.ComplexGeneric1 FirstDefined in base-4.20.2.0 · Data.SemigroupGeneric1 LastDefined in base-4.20.2.0 · Data.SemigroupGeneric1 MaxDefined in base-4.20.2.0 · Data.SemigroupGeneric1 MinDefined in base-4.20.2.0 · Data.SemigroupGeneric1 WrappedMonoidDefined in base-4.20.2.0 · Data.SemigroupGeneric1 SCCDefined in containers-0.7 · Data.GraphGeneric1 DigitDefined in containers-0.7 · Data.Sequence.InternalGeneric1 ElemDefined in containers-0.7 · Data.Sequence.InternalGeneric1 FingerTreeDefined in containers-0.7 · Data.Sequence.InternalGeneric1 NodeDefined in containers-0.7 · Data.Sequence.InternalGeneric1 ViewLDefined in containers-0.7 · Data.Sequence.InternalGeneric1 ViewRDefined in containers-0.7 · Data.Sequence.InternalGeneric1 TreeDefined in containers-0.7 · Data.TreeGeneric1 NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityGeneric1 FirstDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidGeneric1 LastDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidGeneric1 DownDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 ZipListDefined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListGeneric1 Par1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 SoloDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 []Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsCategory OpDefined in base-4.20.2.0 · Data.Functor.ContravariantHasResolution E0Defined in base-4.20.2.0 · Data.FixedHasResolution E1Defined in base-4.20.2.0 · Data.FixedHasResolution E12Defined in base-4.20.2.0 · Data.FixedHasResolution E2Defined in base-4.20.2.0 · Data.FixedHasResolution E3Defined in base-4.20.2.0 · Data.FixedHasResolution E6Defined in base-4.20.2.0 · Data.FixedHasResolution E9Defined in base-4.20.2.0 · Data.FixedHasResolution E14Defined in time-1.12.2 · Data.Time.Format.ISO8601HasResolution E16Defined in time-1.12.2 · Data.Time.Format.ISO8601Semigroupoid OpDefined in semigroupoids-6.0.1 · Data.SemigroupoidSemigroupoid Tuple2Defined in semigroupoids-6.0.1 · Data.SemigroupoidProfunctorFunctor CopastroSumDefined in profunctors-5.6.3 · Data.Profunctor.ChoiceProfunctorFunctor CotambaraSumDefined in profunctors-5.6.3 · Data.Profunctor.ChoiceProfunctorFunctor PastroSumDefined in profunctors-5.6.3 · Data.Profunctor.ChoiceProfunctorFunctor TambaraSumDefined in profunctors-5.6.3 · Data.Profunctor.ChoiceProfunctorFunctor ClosureDefined in profunctors-5.6.3 · Data.Profunctor.ClosedProfunctorFunctor EnvironmentDefined in profunctors-5.6.3 · Data.Profunctor.ClosedProfunctorFunctor CofreeMappingDefined in profunctors-5.6.3 · Data.Profunctor.MappingProfunctorFunctor FreeMappingDefined in profunctors-5.6.3 · Data.Profunctor.MappingProfunctorFunctor CopastroDefined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctorFunctor CotambaraDefined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctorFunctor PastroDefined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctorFunctor TambaraDefined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctorFunctor CofreeTraversingDefined in profunctors-5.6.3 · Data.Profunctor.TraversingProfunctorFunctor FreeTraversingDefined in profunctors-5.6.3 · Data.Profunctor.TraversingProfunctorFunctor CoyonedaDefined in profunctors-5.6.3 · Data.Profunctor.YonedaProfunctorFunctor YonedaDefined in profunctors-5.6.3 · Data.Profunctor.YonedaFunctor f => BifunctorFunctor (Tannen f)Defined in bifunctors-5.6.2 · Data.Bifunctor.TannenMonadRWS r w s m => MonadRWS r w s (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.RWS.ClassProfunctorFunctor WrappedProfunctorDefined in invariant-0.6.4 · Data.Functor.InvariantProfunctorFunctor (Product p)Defined in profunctors-5.6.3 · Data.Profunctor.MonadProfunctorFunctor (Sum p)Defined in profunctors-5.6.3 · Data.Profunctor.MonadComonad f => BifunctorComonad (Tannen f)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Functor f, Monad f) => BifunctorMonad (Tannen f)Defined in bifunctors-5.6.2 · Data.Bifunctor.TannenFunctor f => ProfunctorFunctor (Tannen f)Defined in profunctors-5.6.3 · Data.Profunctor.MonadFunctor f => ProfunctorFunctor (Cayley f)Defined in profunctors-5.6.3 · Data.Profunctor.CayleyProfunctorFunctor (Procompose p)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctorFunctor (Rift p)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctorFunctor (Ran p)Defined in profunctors-5.6.3 · Data.Profunctor.RanFunctor f => Generic1 (Cofree f)Defined in free-5.2 · Control.Comonad.CofreeFunctor f => Generic1 (Free f)Defined in free-5.2 · Control.Monad.FreeFunctor f => Generic1 (Free f)Defined in free-5.2 · Control.Monad.Free.ApFunctor m => Generic1 (MaybeT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.MaybeGeneric1 (WrappedMonad m)Defined in base-4.20.2.0 · Control.ApplicativeGeneric1 (Arg a)Defined in base-4.20.2.0 · Data.SemigroupGeneric1 (Either a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple2 a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Lift f)Defined in transformers-0.6.1.1 · Control.Applicative.LiftApplicative f => Category (Static f)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.StaticMonad m => Category (Kleisli m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowCategory p => Category (TambaraSum p)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceCategory p => Category (Closure p)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedCategory p => Category (Tambara p)Defined in profunctors-5.6.3 · Data.Profunctor.StrongSemigroupoid s => Category (Categorical s)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.Categorical(Applicative f, Monad f) => Category (WhenMissing f)Defined in containers-0.7 · Data.IntMap.Internal(Category p, Profunctor p) => Category (Coyoneda p)Defined in profunctors-5.6.3 · Data.Profunctor.Yoneda(Category p, Profunctor p) => Category (Yoneda p)Defined in profunctors-5.6.3 · Data.Profunctor.YonedaGNFData arity U1Defined in deepseq-1.5.0.0 · Control.DeepSeqGNFData arity V1Defined in deepseq-1.5.0.0 · Control.DeepSeqGBinaryGet U1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryGet V1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryPut U1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryPut V1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGHashable arity U1Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphanGHashable arity V1Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphanFoldableWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void U1Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void V1Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void U1Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void V1Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void ProxyDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void U1Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void V1Defined in indexed-traversable-0.1.4 · WithIndexGEq1 v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v UAddrDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v UCharDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v UDoubleDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v UFloatDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v UIntDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v UWordDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v UAddrDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v UCharDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v UDoubleDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v UFloatDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v UIntDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v UWordDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGRead1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGRead1Con v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v UCharDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v UDoubleDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v UFloatDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v UIntDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v UWordDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGDeciding1 q U1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericGDeciding1 q V1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericApply f => Semigroupoid (Static f)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.StaticBind m => Semigroupoid (Kleisli m)Defined in semigroupoids-6.0.1 · Data.SemigroupoidSemigroupoid ConstDefined in semigroupoids-6.0.1 · Data.SemigroupoidSemigroupoid TaggedDefined in semigroupoids-6.0.1 · Data.SemigroupoidSemigroupoid s => Semigroupoid (Categorical s)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.Categorical(Bind m, Monad m) => Ob (Kleisli m) aDefined in semigroupoids-6.0.1 · Data.Semigroupoid.ObFunctor m => Generic1 (ExceptT e m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ExceptGeneric1 (WrappedArrow a b)Defined in base-4.20.2.0 · Control.ApplicativeGeneric1 (Biap bi a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapGeneric1 (CofreeF f a)Defined in free-5.2 · Control.Comonad.Trans.CofreeGeneric1 (FreeF f a)Defined in free-5.2 · Control.Monad.Trans.FreeGeneric1 (FreeF f a)Defined in free-5.2 · Control.Monad.Trans.Free.ApGeneric1 (Kleisli m a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowGeneric1 (Tuple3 a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tagged s)Defined in tagged-0.8.9 · Data.TaggedGeneric1 (ReaderT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ReaderComonad w => Category (Cokleisli w)Defined in comonad-5.0.9 · Control.ComonadMonad f => Category (Star f)Defined in profunctors-5.6.3 · Data.Profunctor.TypesCategory (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Category(Applicative f, Monad f) => Category (WhenMissing f k)Defined in containers-0.7 · Data.Map.Internal(Monad f, Applicative f) => Category (WhenMatched f x)Defined in containers-0.7 · Data.IntMap.InternalMonadAccum w m => MonadAccum w (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.AccumMonadError e m => MonadError e (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadReader r m => MonadReader r (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadState s m => MonadState s (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadWriter w m => MonadWriter w (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.Writer.ClassMonadSelect r m => MonadSelect r (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.SelectGNFData arity (URec a)Defined in deepseq-1.5.0.0 · Control.DeepSeqNFData1 f => GNFData One (Rec1 f)Defined in deepseq-1.5.0.0 · Control.DeepSeqHashable1 f => GHashable One (Rec1 f)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphanFoldableWithIndex Void (Const e)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex Void (Constant e)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex i f => FoldableWithIndex i (Rec1 f)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex i f => FoldableWithIndex i (Backwards f)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex i f => FoldableWithIndex i (Reverse f)Defined in indexed-traversable-0.1.4 · WithIndexFoldableWithIndex i m => FoldableWithIndex i (IdentityT m)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void (Const e)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void (Constant e)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex i f => FunctorWithIndex i (Rec1 f)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex i f => FunctorWithIndex i (Backwards f)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex i f => FunctorWithIndex i (Reverse f)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex i m => FunctorWithIndex i (IdentityT m)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void (Const e)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void (Constant e)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex i f => TraversableWithIndex i (Rec1 f)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex i f => TraversableWithIndex i (Backwards f)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex i f => TraversableWithIndex i (Reverse f)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex i m => TraversableWithIndex i (IdentityT m)Defined in indexed-traversable-0.1.4 · WithIndexEq1 f => GEq1 NonV4 (Rec1 f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd1 f => GOrd1 NonV4 (Rec1 f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRead1 f => GRead1Con NonV4 (Rec1 f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalShow1 f => GShow1Con NonV4 (Rec1 f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalComonadEnv e w => ComonadEnv e (IdentityT w)Defined in comonad-5.0.9 · Control.Comonad.Env.ClassComonadStore s w => ComonadStore s (IdentityT w)Defined in comonad-5.0.9 · Control.Comonad.Store.ClassComonadTraced m w => ComonadTraced m (IdentityT w)Defined in comonad-5.0.9 · Control.Comonad.Traced.ClassDeciding1 q f => GDeciding1 q (Rec1 f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericExtend w => Semigroupoid (Cokleisli w)Defined in semigroupoids-6.0.1 · Data.SemigroupoidSemigroupoid (->)Defined in semigroupoids-6.0.1 · Data.SemigroupoidMonadBase b m => MonadBase b (IdentityT m)Defined in transformers-base-0.4.6 · Control.Monad.BaseComonadCofree f w => ComonadCofree f (IdentityT w)Defined in free-5.2 · Control.Comonad.Cofree.Class(Functor f, MonadFree f m) => MonadFree f (IdentityT m)Defined in free-5.2 · Control.Monad.Free.ClassOb (->) aDefined in semigroupoids-6.0.1 · Data.Semigroupoid.Ob(Extend w, Comonad w) => Ob (Cokleisli w) aDefined in semigroupoids-6.0.1 · Data.Semigroupoid.ObGeneric1 (Tuple4 a b c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Monad f, Applicative f) => Category (WhenMatched f k x)Defined in containers-0.7 · Data.Map.InternalMonadAccum w m => MonadAccum w (ContT r m)Defined in mtl-2.3.1 · Control.Monad.AccumThe continuation can see, and interact with, the accumulated value.
(Comonad w, MonadError e m) => MonadError e (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.CoMonadReader r' m => MonadReader r' (ContT r m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Comonad w, MonadReader e m) => MonadReader e (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.CoMonadState s m => MonadState s (ContT r m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Comonad w, MonadState s m) => MonadState s (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.Co(Comonad w, MonadWriter e m) => MonadWriter e (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.CoMonadSelect r' m => MonadSelect r' (ContT r m)Defined in mtl-2.3.1 · Control.Monad.SelectThe continuation describes a way of choosing a 'search' or 'ranking'
strategy for r, based on a 'ranking' using r', given any a. We then
get a 'search' strategy for r.
NFData a => GNFData arity (K1 i a)Defined in deepseq-1.5.0.0 · Control.DeepSeq(GNFData arity a, GNFData arity b) => GNFData arity (a :*: b)Defined in deepseq-1.5.0.0 · Control.DeepSeq(GNFData arity a, GNFData arity b) => GNFData arity (a :+: b)Defined in deepseq-1.5.0.0 · Control.DeepSeqBinary a => GBinaryGet (K1 i a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GBinaryGet a, GBinaryGet b) => GBinaryGet (a :*: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GSumGet a, GSumGet b, SumSize a, SumSize b) => GBinaryGet (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanBinary a => GBinaryPut (K1 i a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GBinaryPut a, GBinaryPut b) => GBinaryPut (a :*: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GSumPut a, GSumPut b, SumSize a, SumSize b) => GBinaryPut (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanHashable a => GHashable arity (K1 i a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan(GHashable arity a, GHashable arity b) => GHashable arity (a :*: b)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan(GSum arity a, GSum arity b) => GHashable arity (a :+: b)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphanGHashable arity a => GSum arity (C1 c a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances(GSum arity a, GSum arity b) => GSum arity (a :+: b)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.InstancesFoldableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.4 · WithIndexEq c => GEq1 v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GEq1 v f, GEq1 v g) => GEq1 v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GEq1 v f, GEq1 v g) => GEq1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd c => GOrd1 v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd1 v f, GOrd1 v g) => GOrd1 v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd1 v f, GOrd1 v g) => GOrd1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Constructor c, GRead1Con v f, IsNullaryCon f) => GRead1 v (C1 c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead1 v f, GRead1 v g) => GRead1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead1 v f, IsNullaryDataType f) => GRead1 v (D1 d f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRead c => GRead1Con v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Selector s, GRead1Con v f) => GRead1Con v (S1 s f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead1Con v f, GRead1Con v g) => GRead1Con v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1 v f => GShow1 v (D1 d f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Constructor c, GShow1Con v f, IsNullaryCon f) => GShow1 v (C1 c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShow1 v f, GShow1 v g) => GShow1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalShow c => GShow1Con v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Selector s, GShow1Con v f) => GShow1Con v (S1 s f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShow1Con v f, GShow1Con v g) => GShow1Con v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GDeciding1 q f, GDeciding1 q g) => GDeciding1 q (f ::*: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generic(GDeciding1 q f, GDeciding1 q g) => GDeciding1 q (f ::+: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Genericq p => GDeciding1 q (K1 i p)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericMonadBase b m => MonadBase b (ContT r m)Defined in transformers-base-0.4.6 · Control.Monad.Base(Functor f, MonadFree f m) => MonadFree f (ContT r m)Defined in free-5.2 · Control.Monad.Free.ClassFunctor f => Generic1 (Compose f g)Defined in base-4.20.2.0 · Data.Functor.ComposeFunctor f => Generic1 (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple5 a b c d)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGNFData arity a => GNFData arity (M1 i c a)Defined in deepseq-1.5.0.0 · Control.DeepSeq(NFData1 f, GNFData One g) => GNFData One (f :.: g)Defined in deepseq-1.5.0.0 · Control.DeepSeqGBinaryGet a => GBinaryGet (M1 i c a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryPut a => GBinaryPut (M1 i c a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGHashable arity a => GHashable arity (M1 i c a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan(Hashable1 f, GHashable One g) => GHashable One (f :.: g)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphanGEq1 v f => GEq1 v (M1 i c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Eq1 f, GEq1 NonV4 g) => GEq1 NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v f => GOrd1 v (M1 i c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Ord1 f, GOrd1 NonV4 g) => GOrd1 NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Read1 f, GRead1Con NonV4 g) => GRead1Con NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Show1 f, GShow1Con NonV4 g) => GShow1Con NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGDeciding1 q f => GDeciding1 q (M1 i c f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericGeneric1 (Tuple6 a b c d e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Applicative f, Category p) => Category (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Applicative f, Category p) => Category (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.CayleyFunctor f => Generic1 (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.TannenGeneric1 (Tuple7 a b c d e f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple8 a b c d e f g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (p (f a)) => Generic1 (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiffGeneric1 (Tuple9 a b c d e f g h)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple10 a b c d e f g h i)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple11 a b c d e f g h i j)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple12 a b c d e f g h i j k)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple13 a b c d e f g h i j k l)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple14 a b c d e f g h i j k l m)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric1 (Tuple15 a b c d e f g h i j k l m n)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonad ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonad U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyFunctor U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor V1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsApplicative ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyApplicative U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldable ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable UAddrDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable UCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable UDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable UFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable UIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable UWordDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable UAddrDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable UCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable UDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable UFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable UIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable UWordDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyAlternative U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus ProxyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyMonadPlus U1Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadZip ProxyDefined in base-4.20.2.0 · Control.Monad.ZipMonadZip U1Defined in base-4.20.2.0 · Control.Monad.ZipBifoldable ConstDefined in base-4.20.2.0 · Data.BifoldableBifoldable TaggedDefined in tagged-0.8.9 · Data.TaggedBifoldable ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantBifoldable1 ConstDefined in base-4.20.2.0 · Data.Bifoldable1Bifoldable1 TaggedDefined in tagged-0.8.9 · Data.TaggedBifunctor ConstDefined in base-4.20.2.0 · Data.BifunctorBifunctor TaggedDefined in tagged-0.8.9 · Data.TaggedBifunctor ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantBitraversable ConstDefined in base-4.20.2.0 · Data.BitraversableBitraversable TaggedDefined in tagged-0.8.9 · Data.TaggedBitraversable ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantFoldable1 V1Defined in base-4.20.2.0 · Data.Foldable1Eq1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesEq1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 UAddrDefined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 UCharDefined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 UDoubleDefined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 UFloatDefined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 UIntDefined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 UWordDefined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphanEq2 ConstDefined in base-4.20.2.0 · Data.Functor.ClassesEq2 TaggedDefined in tagged-0.8.9 · Data.TaggedEq2 ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantOrd1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesOrd1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 UAddrDefined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 UCharDefined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 UDoubleDefined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 UFloatDefined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 UIntDefined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 UWordDefined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphanOrd2 ConstDefined in base-4.20.2.0 · Data.Functor.ClassesOrd2 TaggedDefined in tagged-0.8.9 · Data.TaggedOrd2 ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantRead1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesRead1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphanRead1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphanRead2 ConstDefined in base-4.20.2.0 · Data.Functor.ClassesRead2 TaggedDefined in tagged-0.8.9 · Data.TaggedRead2 ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantShow1 ProxyDefined in base-4.20.2.0 · Data.Functor.ClassesShow1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 UAddrDefined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 UCharDefined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 UDoubleDefined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 UFloatDefined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 UIntDefined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 UWordDefined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphanShow2 ConstDefined in base-4.20.2.0 · Data.Functor.ClassesShow2 TaggedDefined in tagged-0.8.9 · Data.TaggedShow2 ConstantDefined in transformers-0.6.1.1 · Data.Functor.ConstantContravariant ProxyDefined in base-4.20.2.0 · Data.Functor.ContravariantContravariant U1Defined in base-4.20.2.0 · Data.Functor.ContravariantContravariant V1Defined in base-4.20.2.0 · Data.Functor.ContravariantMonadTrans IdentityTDefined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityNFData1 FixedDefined in deepseq-1.5.0.0 · Control.DeepSeqNFData1 ProxyDefined in deepseq-1.5.0.0 · Control.DeepSeqNFData2 ConstDefined in deepseq-1.5.0.0 · Control.DeepSeqNFData2 (:~:)Defined in deepseq-1.5.0.0 · Control.DeepSeqGUniform U1Defined in random-1.2.1.3 · System.Random.InternalGFinite U1Defined in random-1.2.1.3 · System.Random.GFiniteGFinite V1Defined in random-1.2.1.3 · System.Random.GFiniteHashable1 ProxyDefined in hashable-1.4.7.0 · Data.Hashable.ClassHashable2 ConstDefined in hashable-1.4.7.0 · Data.Hashable.ClassAssoc ConstDefined in assoc-1.1.1 · Data.Bifunctor.AssocDistributive ProxyDefined in distributive-0.6.2.1 · Data.DistributiveDistributive U1Defined in distributive-0.6.2.1 · Data.DistributiveGDistributive U1Defined in distributive-0.6.2.1 · Data.Distributive.GenericIsNullaryCon U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon UCharDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon UDoubleDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon UFloatDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon UIntDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon UWordDefined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryDataType V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalComonadTrans DensityDefined in kan-extensions-5.2.7 · Control.Comonad.DensityComonadTrans IdentityTDefined in comonad-5.0.9 · Control.Comonad.Trans.ClassComonadHoist IdentityTDefined in comonad-5.0.9 · Control.Comonad.Hoist.ClassBiapplicative ConstDefined in bifunctors-5.6.2 · Data.BiapplicativeBiapplicative TaggedDefined in bifunctors-5.6.2 · Data.BiapplicativeDecidable ProxyDefined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDecidable U1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible ProxyDefined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible U1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleGG U1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericGG V1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericBiapply ConstDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBiapply TaggedDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassAlt ProxyDefined in semigroupoids-6.0.1 · Data.Functor.AltAlt U1Defined in semigroupoids-6.0.1 · Data.Functor.AltAlt V1Defined in semigroupoids-6.0.1 · Data.Functor.AltApply ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply U1Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply V1Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassA V1 is not Applicative, but it is an instance of Apply
Bind ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind U1Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind V1Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend ProxyDefined in semigroupoids-6.0.1 · Data.Functor.ExtendExtend U1Defined in semigroupoids-6.0.1 · Data.Functor.ExtendExtend V1Defined in semigroupoids-6.0.1 · Data.Functor.ExtendBindTrans IdentityTDefined in semigroupoids-6.0.1 · Data.Functor.Bind.TransConclude ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude U1Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeDecide ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDecide U1Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDecide V1Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideHas no Decidable or Conclude instance.
Divise ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise U1Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise V1Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseHas no Divisible instance.
Plus ProxyDefined in semigroupoids-6.0.1 · Data.Functor.PlusPlus U1Defined in semigroupoids-6.0.1 · Data.Functor.PlusBitraversable1 ConstDefined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassBitraversable1 TaggedDefined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 V1Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassGDefault U1Defined in data-default-0.8.0.1 · Data.Default.InternalA nullary constructor is its own default.
Choice TaggedDefined in profunctors-5.6.3 · Data.Profunctor.ChoiceClosed TaggedDefined in profunctors-5.6.3 · Data.Profunctor.ClosedCostrong TaggedDefined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctor TaggedDefined in profunctors-5.6.3 · Data.Profunctor.UnsafeCorepresentable TaggedDefined in profunctors-5.6.3 · Data.Profunctor.RepGMonoid U1Defined in semigroups-0.20 · Data.Semigroup.GenericGSemigroup U1Defined in semigroups-0.20 · Data.Semigroup.GenericGSemigroup V1Defined in semigroups-0.20 · Data.Semigroup.GenericRepresentable ProxyDefined in adjunctions-4.4.3 · Data.Functor.RepRepresentable U1Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable ProxyDefined in adjunctions-4.4.3 · Data.Functor.Contravariant.RepRepresentable U1Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.RepInvariant ProxyDefined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Proxy
Invariant U1Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant UAddrDefined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant UCharDefined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant UDoubleDefined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant UFloatDefined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant UIntDefined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant UWordDefined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant V1Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant2 ConstDefined in invariant-0.6.4 · Data.Functor.Invariantfrom Control.Applicative
Invariant2 TaggedDefined in invariant-0.6.4 · Data.Functor.Invariantfrom the tagged package
Invariant2 ConstantDefined in invariant-0.6.4 · Data.Functor.Invariantfrom the transformers package
Selective ProxyDefined in selective-0.7.0.1 · Control.SelectiveAdjustable ProxyDefined in keys-3.12.3 · Data.KeyAdjustable U1Defined in keys-3.12.3 · Data.KeyFoldableWithKey ProxyDefined in keys-3.12.3 · Data.KeyFoldableWithKey U1Defined in keys-3.12.3 · Data.KeyFoldableWithKey V1Defined in keys-3.12.3 · Data.KeyFoldableWithKey1 V1Defined in keys-3.12.3 · Data.KeyIndexable ProxyDefined in keys-3.12.3 · Data.KeyIndexable U1Defined in keys-3.12.3 · Data.KeyKeyed ProxyDefined in keys-3.12.3 · Data.KeyKeyed U1Defined in keys-3.12.3 · Data.KeyKeyed V1Defined in keys-3.12.3 · Data.KeyLookup ProxyDefined in keys-3.12.3 · Data.KeyLookup U1Defined in keys-3.12.3 · Data.KeyTraversableWithKey ProxyDefined in keys-3.12.3 · Data.KeyTraversableWithKey U1Defined in keys-3.12.3 · Data.KeyTraversableWithKey V1Defined in keys-3.12.3 · Data.KeyTraversableWithKey1 V1Defined in keys-3.12.3 · Data.KeyZip ProxyDefined in keys-3.12.3 · Data.KeyZip U1Defined in keys-3.12.3 · Data.KeyZip V1Defined in keys-3.12.3 · Data.KeyZipWithKey ProxyDefined in keys-3.12.3 · Data.KeyZipWithKey U1Defined in keys-3.12.3 · Data.KeyZipWithKey V1Defined in keys-3.12.3 · Data.KeyPointed ProxyDefined in pointed-5.0.4 · Data.PointedPointed U1Defined in pointed-5.0.4 · Data.PointedCosieve Tagged ProxyDefined in profunctors-5.6.3 · Data.Profunctor.SieveAdjunction V1 U1Defined in adjunctions-4.4.3 · Data.Functor.AdjunctionMonad f => Monad (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonad f => Monad (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonad f => Monad (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonad m => Monad (WrappedFunctor m)Defined in invariant-0.6.4 · Data.Functor.InvariantMonad m => Monad (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonad m => Monad (Reverse m)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
(Monad (Rep p), Representable p) => Monad (Prep p)Defined in profunctors-5.6.3 · Data.Profunctor.RepData p => Data (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataData p => Data (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataData t => Data (Proxy t)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataBifunctor p => Functor (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixBifunctor p => Functor (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinFunctor (Const m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstFunctor (URec Char)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Double)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Float)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Int)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec Word)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (URec (Ptr ()))Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantFunctor f => Functor (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidFunctor f => Functor (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor f => Functor (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor f => Functor (Indexing f)Defined in indexed-traversable-0.1.4 · WithIndexFunctor f => Functor (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantFunctor f => Functor (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsDerived instance.
Functor f => Functor (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Functor m => Functor (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityProfunctor p => Functor (Coprep p)Defined in profunctors-5.6.3 · Data.Profunctor.RepProfunctor p => Functor (Prep p)Defined in profunctors-5.6.3 · Data.Profunctor.Rep(Generic1 f, Functor (Rep1 f)) => Functor (Generically1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadFix f => MonadFix (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix f => MonadFix (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix f => MonadFix (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix m => MonadFix (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonadFail f => MonadFail (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonadFail m => MonadFail (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonadFail m => MonadFail (Reverse m)Defined in transformers-0.6.1.1 · Data.Functor.ReverseBiapplicative p => Applicative (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixBiapplicative p => Applicative (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinApplicative f => Applicative (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidApplicative f => Applicative (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Applicative (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsApplicative f => Applicative (Indexing f)Defined in indexed-traversable-0.1.4 · WithIndexApplicative f => Applicative (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantApplicative f => Applicative (Density f)Defined in kan-extensions-5.2.7 · Control.Comonad.DensityApplicative f => Applicative (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsApply f-actions in the reverse order.
Applicative f => Applicative (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Applicative m => Applicative (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonoid a => Applicative (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantMonoid m => Applicative (Const m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.Const(Applicative (Rep p), Representable p) => Applicative (Prep p)Defined in profunctors-5.6.3 · Data.Profunctor.Rep(Generic1 f, Applicative (Rep1 f)) => Applicative (Generically1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsBifoldable p => Foldable (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixBifoldable p => Foldable (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinFoldable (Const m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstFoldable (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantFoldable f => Foldable (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable f => Foldable (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable f => Foldable (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable f => Foldable (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantFoldable f => Foldable (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsDerived instance.
Foldable f => Foldable (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityFoldable f => Foldable (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseFold from right to left.
Bitraversable p => Traversable (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixBitraversable p => Traversable (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinTraversable (Const m)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantTraversable f => Traversable (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable f => Traversable (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable f => Traversable (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable f => Traversable (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantTraversable f => Traversable (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsDerived instance.
Traversable f => Traversable (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityTraversable f => Traversable (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseTraverse from right to left.
Alternative f => Alternative (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidAlternative f => Alternative (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalAlternative f => Alternative (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsAlternative f => Alternative (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantAlternative f => Alternative (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsTry alternatives in the same order as f.
Alternative f => Alternative (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Alternative m => Alternative (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus f => MonadPlus (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidMonadPlus f => MonadPlus (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadPlus f => MonadPlus (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus m => MonadPlus (WrappedFunctor m)Defined in invariant-0.6.4 · Data.Functor.InvariantMonadPlus m => MonadPlus (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonadPlus m => MonadPlus (Reverse m)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Comonad w => Arrow (Cokleisli w)Defined in comonad-5.0.9 · Control.ComonadComonad w => ArrowApply (Cokleisli w)Defined in comonad-5.0.9 · Control.ComonadComonad w => ArrowChoice (Cokleisli w)Defined in comonad-5.0.9 · Control.ComonadComonadApply w => ArrowLoop (Cokleisli w)Defined in comonad-5.0.9 · Control.ComonadMonadIO m => MonadIO (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityMonadZip f => MonadZip (Alt f)Defined in base-4.20.2.0 · Control.Monad.ZipMonadZip f => MonadZip (Rec1 f)Defined in base-4.20.2.0 · Control.Monad.ZipMonadZip m => MonadZip (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityBifoldable (K1 i)Defined in base-4.20.2.0 · Data.BifoldableBifunctor (K1 i)Defined in base-4.20.2.0 · Data.BifunctorBitraversable (K1 i)Defined in base-4.20.2.0 · Data.BitraversableBifoldable1 p => Foldable1 (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinFoldable1 f => Foldable1 (Ap f)Defined in base-4.20.2.0 · Data.Foldable1Foldable1 f => Foldable1 (Alt f)Defined in base-4.20.2.0 · Data.Foldable1Foldable1 f => Foldable1 (Rec1 f)Defined in base-4.20.2.0 · Data.Foldable1Foldable1 f => Foldable1 (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsDerived instance.
Foldable1 f => Foldable1 (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseFold from right to left.
Foldable1 m => Foldable1 (IdentityT m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityEq1 f => Eq1 (Rec1 f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 f => Eq1 (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsEq1 f => Eq1 (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityEq1 f => Eq1 (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseEq2 p => Eq1 (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixEq2 p => Eq1 (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinEq a => Eq1 (Const a)Defined in base-4.20.2.0 · Data.Functor.ClassesEq a => Eq1 (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.Constant(Generic1 f, Eq1 (Rep1 f)) => Eq1 (Generically1 f)Defined in base-4.20.2.0 · Data.Functor.ClassesOrd1 f => Ord1 (Rec1 f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 f => Ord1 (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsOrd1 f => Ord1 (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityOrd1 f => Ord1 (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseOrd2 p => Ord1 (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixOrd2 p => Ord1 (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinOrd a => Ord1 (Const a)Defined in base-4.20.2.0 · Data.Functor.ClassesOrd a => Ord1 (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.Constant(Generic1 f, Ord1 (Rep1 f)) => Ord1 (Generically1 f)Defined in base-4.20.2.0 · Data.Functor.ClassesRead1 f => Read1 (Rec1 f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanRead1 f => Read1 (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsRead1 f => Read1 (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityRead1 f => Read1 (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseRead2 p => Read1 (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixRead2 p => Read1 (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinRead a => Read1 (Const a)Defined in base-4.20.2.0 · Data.Functor.ClassesRead a => Read1 (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantShow1 f => Show1 (Rec1 f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 f => Show1 (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsShow1 f => Show1 (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityShow1 f => Show1 (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseShow2 p => Show1 (Fix p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixShow2 p => Show1 (Join p)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinShow a => Show1 (Const a)Defined in base-4.20.2.0 · Data.Functor.ClassesShow a => Show1 (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantContravariant (Const a)Defined in base-4.20.2.0 · Data.Functor.ContravariantContravariant (Constant a)Defined in transformers-0.6.1.1 · Data.Functor.ConstantContravariant f => Contravariant (Alt f)Defined in base-4.20.2.0 · Data.Functor.ContravariantContravariant f => Contravariant (Rec1 f)Defined in base-4.20.2.0 · Data.Functor.ContravariantContravariant f => Contravariant (WrappedContravariant f)Defined in invariant-0.6.4 · Data.Functor.InvariantContravariant f => Contravariant (Backwards f)Defined in transformers-0.6.1.1 · Control.Applicative.BackwardsDerived instance.
Contravariant f => Contravariant (IdentityT f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.IdentityContravariant f => Contravariant (Reverse f)Defined in transformers-0.6.1.1 · Data.Functor.ReverseDerived instance.
Comonad w => MonadTrans (CoT w)Defined in kan-extensions-5.2.7 · Control.Monad.CoMonadTrans CodensityDefined in kan-extensions-5.2.7 · Control.Monad.CodensityMonadTrans (ContT r)Defined in transformers-0.6.1.1 · Control.Monad.Trans.ContMonadCont m => MonadCont (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.Cont.ClassNFData a => NFData1 (Const a)Defined in deepseq-1.5.0.0 · Control.DeepSeqNFData1 ((:~:) a)Defined in deepseq-1.5.0.0 · Control.DeepSeqNFData2 (:~~:)Defined in deepseq-1.5.0.0 · Control.DeepSeqMonadCatch m => MonadCatch (IdentityT m)Defined in exceptions-0.10.9 · Control.Monad.CatchMonadMask m => MonadMask (IdentityT m)Defined in exceptions-0.10.9 · Control.Monad.CatchMonadThrow m => MonadThrow (IdentityT m)Defined in exceptions-0.10.9 · Control.Monad.CatchHashable a => Hashable1 (Const a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassPrimBase m => PrimBase (IdentityT m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitivePrimMonad m => PrimMonad (IdentityT m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitiveDistributive f => Distributive (Rec1 f)Defined in distributive-0.6.2.1 · Data.DistributiveDistributive f => Distributive (Backwards f)Defined in distributive-0.6.2.1 · Data.DistributiveDistributive f => Distributive (Reverse f)Defined in distributive-0.6.2.1 · Data.DistributiveDistributive g => Distributive (IdentityT g)Defined in distributive-0.6.2.1 · Data.DistributiveDistributive f => GDistributive (Rec1 f)Defined in distributive-0.6.2.1 · Data.Distributive.GenericGEq (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (UAddr p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (UChar p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (UDouble p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (UFloat p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (UInt p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (UWord p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGEq (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (UAddr p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (UChar p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (UDouble p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (UFloat p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (UInt p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (UWord p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGRead (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon (Rec1 f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGReadCon (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (UChar p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (UDouble p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (UFloat p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (UInt p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (UWord p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalComonad w => Comonad (IdentityT w)Defined in comonad-5.0.9 · Control.ComonadComonadApply w => ComonadApply (IdentityT w)Defined in comonad-5.0.9 · Control.ComonadComposition ComposeDefined in comonad-5.0.9 · Data.Functor.CompositionDecidable f => Decidable (Alt f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDecidable f => Decidable (Rec1 f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDecidable f => Decidable (WrappedContravariant f)Defined in invariant-0.6.4 · Data.Functor.InvariantDecidable f => Decidable (Backwards f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDecidable f => Decidable (IdentityT f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDecidable f => Decidable (Reverse f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (Alt f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (Rec1 f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (WrappedContravariant f)Defined in invariant-0.6.4 · Data.Functor.InvariantDivisible f => Divisible (Backwards f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (IdentityT f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (Reverse f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleMonoid m => Divisible (Const m)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleMonoid m => Divisible (Constant m)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleGG (Rec1 f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericAlt f => Alt (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.AltAlt f => Alt (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.AltAlt f => Alt (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.AltAlt f => Alt (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.AltSemigroup f => Apply (Constant f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassA Constant f is not Applicative unless its f is a Monoid, but it is an instance of Apply
Semigroup m => Apply (Const m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassA Const m is not Applicative unless its m is a Monoid, but it is an instance of Apply
Apply (Tagged a)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply f => Apply (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply f => Apply (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply f => Apply (Density f)Defined in kan-extensions-5.2.7 · Control.Comonad.DensityApply f => Apply (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply f => Apply (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply w => Apply (IdentityT w)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBiapply p => Apply (Join p)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind (Tagged a)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind f => Bind (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind m => Bind (Rec1 m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind m => Bind (IdentityT m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend (Tagged a)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendExtend f => Extend (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendExtend f => Extend (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendExtend w => Extend (IdentityT w)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendBindTrans (ContT r)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.TransConclude f => Conclude (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeDecide f => Decide (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDecide f => Decide (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDecide f => Decide (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDecide f => Decide (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDecide f => Decide (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideSemigroup m => Divise (Const m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseSemigroup m => Divise (Constant m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise f => Divise (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise f => Divise (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise f => Divise (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise f => Divise (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseDivise f => Divise (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DivisePlus f => Plus (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.PlusPlus f => Plus (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.PlusPlus f => Plus (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.PlusPlus f => Plus (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.PlusBitraversable1 p => Traversable1 (Join p)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 (Tagged a)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Traversable1 (Alt f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Traversable1 (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Traversable1 (Backwards f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Traversable1 (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Traversable1 (Reverse f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassHasResolution a => Default (Fixed a)Defined in data-default-0.8.0.1 · Data.Default.InternalDefault (Proxy a)Defined in data-default-0.8.0.1 · Data.Default.InternalComonad w => Choice (Cokleisli w)Defined in profunctors-5.6.3 · Data.Profunctor.Choiceextract approximates costrength
Applicative f => Choice (Star f)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceMonoid r => Choice (Forget r)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceApplicative f => Cochoice (Costar f)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceTraversable f => Cochoice (Star f)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceCochoice (Forget r)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceDistributive f => Closed (Star f)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedFunctor f => Closed (Cokleisli f)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedFunctor f => Closed (Costar f)Defined in profunctors-5.6.3 · Data.Profunctor.Closed(Applicative m, Distributive m) => Mapping (Star m)Defined in profunctors-5.6.3 · Data.Profunctor.MappingFunctor f => Costrong (Cokleisli f)Defined in profunctors-5.6.3 · Data.Profunctor.StrongFunctor f => Costrong (Costar f)Defined in profunctors-5.6.3 · Data.Profunctor.StrongFunctor m => Strong (Star m)Defined in profunctors-5.6.3 · Data.Profunctor.StrongStrong (Forget r)Defined in profunctors-5.6.3 · Data.Profunctor.StrongFunctor f => Profunctor (Costar f)Defined in profunctors-5.6.3 · Data.Profunctor.TypesFunctor f => Profunctor (Star f)Defined in profunctors-5.6.3 · Data.Profunctor.TypesFunctor w => Profunctor (Cokleisli w)Defined in profunctors-5.6.3 · Data.Profunctor.UnsafeProfunctor (Forget r)Defined in profunctors-5.6.3 · Data.Profunctor.TypesApplicative m => Traversing (Star m)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingMonoid m => Traversing (Forget m)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingProfunctorComonad WrappedProfunctorDefined in invariant-0.6.4 · Data.Functor.InvariantProfunctorMonad WrappedProfunctorDefined in invariant-0.6.4 · Data.Functor.InvariantFunctor f => Corepresentable (Costar f)Defined in profunctors-5.6.3 · Data.Profunctor.RepFunctor w => Corepresentable (Cokleisli w)Defined in profunctors-5.6.3 · Data.Profunctor.RepFunctor f => Representable (Star f)Defined in profunctors-5.6.3 · Data.Profunctor.RepRepresentable (Forget r)Defined in profunctors-5.6.3 · Data.Profunctor.RepRepresentable (Tagged t)Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable f => Representable (Rec1 f)Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable f => Representable (Backwards f)Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable f => Representable (Reverse f)Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable m => Representable (IdentityT m)Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable f => GIndex (Rec1 f)Defined in adjunctions-4.4.3 · Data.Functor.RepRepresentable f => GTabulate (Rec1 f)Defined in adjunctions-4.4.3 · Data.Functor.RepContravariant f => Invariant (WrappedContravariant f)Defined in invariant-0.6.4 · Data.Functor.InvariantFunctor f => Invariant (WrappedFunctor f)Defined in invariant-0.6.4 · Data.Functor.InvariantArrow c => Invariant (InvariantArrow c)Defined in invariant-0.6.4 · Data.Functor.InvariantInvariant (Const a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom Control.Applicative
Invariant (Constant a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the transformers package
Invariant f => Invariant (Alt f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Monoid
Invariant f => Invariant (Rec1 f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant f => Invariant (Backwards f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the transformers package
Invariant f => Invariant (Reverse f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the transformers package
Invariant m => Invariant (IdentityT m)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the transformers package
Invariant2 p => Invariant (Fix p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant2 p => Invariant (Join p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant2 p => Invariant (Coprep p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant2 p => Invariant (Prep p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Profunctor p => Invariant (InvariantProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantInvariant f => Invariant2 (Costar f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant f => Invariant2 (Star f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant w => Invariant2 (Cokleisli w)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the comonad package
Invariant2 (K1 i)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant2 (Forget r)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Selective f => Selective (IdentityT f)Defined in selective-0.7.0.1 · Control.SelectiveAbelian (Proxy x)Defined in groups-0.5.3 · Data.GroupCyclic (Proxy x)Defined in groups-0.5.3 · Data.GroupGroup (Proxy x)Defined in groups-0.5.3 · Data.GroupTrivial group, Functor style.
Adjustable (Const e)Defined in keys-3.12.3 · Data.KeyAdjustable (Tagged a)Defined in keys-3.12.3 · Data.KeyAdjustable (Constant e)Defined in keys-3.12.3 · Data.KeyAdjustable f => Adjustable (Rec1 f)Defined in keys-3.12.3 · Data.KeyFoldableWithKey (Const e)Defined in keys-3.12.3 · Data.KeyFoldableWithKey (Tagged a)Defined in keys-3.12.3 · Data.KeyFoldableWithKey (Constant e)Defined in keys-3.12.3 · Data.KeyFoldableWithKey f => FoldableWithKey (Rec1 f)Defined in keys-3.12.3 · Data.KeyFoldableWithKey m => FoldableWithKey (IdentityT m)Defined in keys-3.12.3 · Data.KeyFoldableWithKey1 (Tagged a)Defined in keys-3.12.3 · Data.KeyFoldableWithKey1 f => FoldableWithKey1 (Rec1 f)Defined in keys-3.12.3 · Data.KeyFoldableWithKey1 m => FoldableWithKey1 (IdentityT m)Defined in keys-3.12.3 · Data.KeyIndexable (Const e)Defined in keys-3.12.3 · Data.KeyIndexable (Tagged a)Defined in keys-3.12.3 · Data.KeyIndexable (Constant e)Defined in keys-3.12.3 · Data.KeyIndexable f => Indexable (Rec1 f)Defined in keys-3.12.3 · Data.KeyIndexable m => Indexable (IdentityT m)Defined in keys-3.12.3 · Data.KeyKeyed (Const e)Defined in keys-3.12.3 · Data.KeyKeyed (Tagged a)Defined in keys-3.12.3 · Data.KeyKeyed (Constant e)Defined in keys-3.12.3 · Data.KeyKeyed f => Keyed (Rec1 f)Defined in keys-3.12.3 · Data.KeyKeyed m => Keyed (IdentityT m)Defined in keys-3.12.3 · Data.KeyLookup (Const e)Defined in keys-3.12.3 · Data.KeyLookup (Tagged a)Defined in keys-3.12.3 · Data.KeyLookup (Constant e)Defined in keys-3.12.3 · Data.KeyLookup f => Lookup (Rec1 f)Defined in keys-3.12.3 · Data.KeyLookup m => Lookup (IdentityT m)Defined in keys-3.12.3 · Data.KeyTraversableWithKey (Const e)Defined in keys-3.12.3 · Data.KeyTraversableWithKey (Tagged a)Defined in keys-3.12.3 · Data.KeyTraversableWithKey (Constant e)Defined in keys-3.12.3 · Data.KeyTraversableWithKey f => TraversableWithKey (Rec1 f)Defined in keys-3.12.3 · Data.KeyTraversableWithKey m => TraversableWithKey (IdentityT m)Defined in keys-3.12.3 · Data.KeyTraversableWithKey1 (Tagged a)Defined in keys-3.12.3 · Data.KeyTraversableWithKey1 f => TraversableWithKey1 (Rec1 f)Defined in keys-3.12.3 · Data.KeyTraversableWithKey1 m => TraversableWithKey1 (IdentityT m)Defined in keys-3.12.3 · Data.KeyZip (Tagged a)Defined in keys-3.12.3 · Data.KeyZip f => Zip (Rec1 f)Defined in keys-3.12.3 · Data.KeyZip m => Zip (IdentityT m)Defined in keys-3.12.3 · Data.KeyZipWithKey (Tagged a)Defined in keys-3.12.3 · Data.KeyZipWithKey f => ZipWithKey (Rec1 f)Defined in keys-3.12.3 · Data.KeyZipWithKey m => ZipWithKey (IdentityT m)Defined in keys-3.12.3 · Data.KeyCopointed (Tagged a)Defined in pointed-5.0.4 · Data.CopointedCopointed f => Copointed (Rec1 f)Defined in pointed-5.0.4 · Data.CopointedCopointed f => Copointed (Backwards f)Defined in pointed-5.0.4 · Data.CopointedCopointed f => Copointed (Reverse f)Defined in pointed-5.0.4 · Data.CopointedCopointed m => Copointed (IdentityT m)Defined in pointed-5.0.4 · Data.CopointedDefault m => Pointed (Const m)Defined in pointed-5.0.4 · Data.PointedDefault m => Pointed (Constant m)Defined in pointed-5.0.4 · Data.PointedPointed (Tagged a)Defined in pointed-5.0.4 · Data.PointedPointed f => Pointed (Rec1 f)Defined in pointed-5.0.4 · Data.PointedPointed f => Pointed (Backwards f)Defined in pointed-5.0.4 · Data.PointedPointed f => Pointed (Reverse f)Defined in pointed-5.0.4 · Data.PointedPointed m => Pointed (IdentityT m)Defined in pointed-5.0.4 · Data.PointedFunctor f => Cosieve (Costar f) fDefined in profunctors-5.6.3 · Data.Profunctor.SieveFunctor w => Cosieve (Cokleisli w) wDefined in profunctors-5.6.3 · Data.Profunctor.SieveFunctor f => Sieve (Star f) fDefined in profunctors-5.6.3 · Data.Profunctor.SieveComonadCofree (Const b) (Tuple2 b)Defined in free-5.2 · Control.Comonad.Cofree.ClassSieve (Forget r) (Const r)Defined in profunctors-5.6.3 · Data.Profunctor.SieveAdjunction f g => Adjunction (Rec1 f) (Rec1 g)Defined in adjunctions-4.4.3 · Data.Functor.AdjunctionAdjunction f g => Adjunction (IdentityT f) (IdentityT g)Defined in adjunctions-4.4.3 · Data.Functor.Adjunction(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (Product f g)Defined in indexed-traversable-0.1.4 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (Sum f g)Defined in indexed-traversable-0.1.4 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.4 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.4 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (Product f g)Defined in indexed-traversable-0.1.4 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (Sum f g)Defined in indexed-traversable-0.1.4 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.4 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.4 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (Product f g)Defined in indexed-traversable-0.1.4 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (Sum f g)Defined in indexed-traversable-0.1.4 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.4 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.4 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (i, j) (Compose f g)Defined in indexed-traversable-0.1.4 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (i, j) (f :.: g)Defined in indexed-traversable-0.1.4 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (i, j) (Compose f g)Defined in indexed-traversable-0.1.4 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (i, j) (f :.: g)Defined in indexed-traversable-0.1.4 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (i, j) (Compose f g)Defined in indexed-traversable-0.1.4 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (i, j) (f :.: g)Defined in indexed-traversable-0.1.4 · WithIndex(Applicative f, Bounded a) => Bounded (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoid(Eq1 f, Eq a) => Eq (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Eq1 f, Eq a) => Eq (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Eq1 f, Eq a) => Eq (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.ReverseMonad f => Monad (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Monad f, Monad g) => Monad (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Monad f, Monad g) => Monad (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Data (f a), Data a, Typeable f) => Data (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Data (f a), Data a, Typeable f) => Data (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Data (f p), Typeable f, Data p) => Data (Rec1 f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Data s, Data b) => Data (Tagged s b)Defined in tagged-0.8.9 · Data.Tagged(Coercible a b, Data a, Data b) => Data (Coercion a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(a ~ b, Data a) => Data (a :~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataFunctor (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor (Forget r a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesFunctor f => Functor (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Functor f, Functor g) => Functor (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Functor f, Functor g) => Functor (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Functor f, Functor g) => Functor (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Functor f, Functor g) => Functor (f :+: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Applicative f, Num a) => Num (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidNote that even if the underlying Num and Applicative instances are lawful, for most Applicatives, this instance will not be lawful. If you use this instance with the list Applicative, the following customary laws will not hold:
Commutativity:
Ap [10,20] + Ap [1,2]Ap {getAp = [11,12,21,22]}Ap [1,2] + Ap [10,20]Ap {getAp = [11,21,12,22]}
Additive inverse:
Ap [] + negate (Ap [])Ap {getAp = []}fromInteger 0 :: Ap [] IntAp {getAp = [0]}
Distributivity:
Ap [1,2] * (3 + 4)Ap {getAp = [7,14]}(Ap [1,2] * 3) + (Ap [1,2] * 4)Ap {getAp = [7,11,10,14]}
(Ord1 f, Ord a) => Ord (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Ord1 f, Ord a) => Ord (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Ord1 f, Ord a) => Ord (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.Reverse(Read1 f, Read a) => Read (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Read1 f, Read a) => Read (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Read1 f, Read a) => Read (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.Reverse(Show1 f, Show a) => Show (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Show1 f, Show a) => Show (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Show1 f, Show a) => Show (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.Reverse(MonadFix f, MonadFix g) => MonadFix (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(MonadFix f, MonadFix g) => MonadFix (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFail m => MonadFail (ContT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Cont(Comonad w, MonadFail m) => MonadFail (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.CoApplicative f => Applicative (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesMonoid c => Applicative (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Applicative f, Applicative g) => Applicative (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Applicative f, Applicative g) => Applicative (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Functor g, Applicative h) => Applicative (Lan g h)Defined in kan-extensions-5.2.7 · Data.Functor.Kan.LanFoldable (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable (Forget r a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Foldable f, Foldable g) => Foldable (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Foldable f, Foldable g) => Foldable (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Foldable f, Foldable g) => Foldable (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Foldable(Foldable f, Foldable g) => Foldable (f :+: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable (Forget r a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Traversable f, Traversable g) => Traversable (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Traversable f, Traversable g) => Traversable (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Traversable f, Traversable g) => Traversable (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Traversable(Traversable f, Traversable g) => Traversable (f :+: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative f => Semigroup (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Semigroup (Traversed a f)Defined in indexed-traversable-0.1.4 · WithIndexMonad m => Semigroup (Sequenced a m)Defined in indexed-traversable-0.1.4 · WithIndex(Applicative f, Semigroup a) => Semigroup (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidAlternative f => Monoid (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Monoid (Traversed a f)Defined in indexed-traversable-0.1.4 · WithIndexMonad m => Monoid (Sequenced a m)Defined in indexed-traversable-0.1.4 · WithIndex(Applicative f, Monoid a) => Monoid (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidAlternative f => Alternative (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Alternative f, Alternative g) => Alternative (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Alternative f, Alternative g) => Alternative (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus f => MonadPlus (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(MonadPlus f, MonadPlus g) => MonadPlus (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsArrow p => Arrow (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantArrow p => Arrow (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.TypesArrowApply p => ArrowApply (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.TypesArrowChoice p => ArrowChoice (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantArrowChoice p => ArrowChoice (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.TypesArrowLoop p => ArrowLoop (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantArrowLoop p => ArrowLoop (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.TypesArrowPlus p => ArrowPlus (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantArrowZero p => ArrowZero (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantArrowZero p => ArrowZero (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.TypesMonadIO m => MonadIO (ContT r m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Cont(Comonad w, MonadIO m) => MonadIO (CoT w m)Defined in kan-extensions-5.2.7 · Control.Monad.Co(MonadZip f, MonadZip g) => MonadZip (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(MonadZip f, MonadZip g) => MonadZip (f :*: g)Defined in base-4.20.2.0 · Control.Monad.ZipBifoldable p => Bifoldable (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBifoldable p => Bifoldable (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedFoldable f => Bifoldable (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownFoldable g => Bifoldable (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerBifoldable1 p => Bifoldable1 (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBifoldable1 p => Bifoldable1 (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedFoldable1 f => Bifoldable1 (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownFoldable1 g => Bifoldable1 (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerBifunctor p => Bifunctor (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBifunctor p => Bifunctor (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedFunctor f => Bifunctor (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownFunctor g => Bifunctor (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerBitraversable p => Bitraversable (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBitraversable p => Bitraversable (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedTraversable f => Bitraversable (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownTraversable g => Bitraversable (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Foldable1 f, Foldable1 g) => Foldable1 (Product f g)Defined in base-4.20.2.0 · Data.Foldable1(Foldable1 f, Foldable1 g) => Foldable1 (Sum f g)Defined in base-4.20.2.0 · Data.Foldable1(Foldable1 f, Foldable1 g) => Foldable1 (f :*: g)Defined in base-4.20.2.0 · Data.Foldable1(Foldable1 f, Foldable1 g) => Foldable1 (f :+: g)Defined in base-4.20.2.0 · Data.Foldable1Eq c => Eq1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Eq1 f, Eq1 g) => Eq1 (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Eq1 f, Eq1 g) => Eq1 (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Eq1 f, Eq1 g) => Eq1 (f :*: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Eq1 f, Eq1 g) => Eq1 (f :+: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 f => Eq2 (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownEq1 g => Eq2 (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerEq2 p => Eq2 (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipEq2 p => Eq2 (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedOrd c => Ord1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Ord1 f, Ord1 g) => Ord1 (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Ord1 f, Ord1 g) => Ord1 (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Ord1 f, Ord1 g) => Ord1 (f :*: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Ord1 f, Ord1 g) => Ord1 (f :+: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 f => Ord2 (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownOrd1 g => Ord2 (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerOrd2 p => Ord2 (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipOrd2 p => Ord2 (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedRead c => Read1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Read1 f, Read1 g) => Read1 (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Read1 f, Read1 g) => Read1 (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Read1 f, Read1 g) => Read1 (f :*: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Read1 f, Read1 g) => Read1 (f :+: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphanRead1 f => Read2 (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownRead1 g => Read2 (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerRead2 p => Read2 (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipRead2 p => Read2 (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedShow c => Show1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Show1 f, Show1 g) => Show1 (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(Show1 f, Show1 g) => Show1 (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Sum(Show1 f, Show1 g) => Show1 (f :*: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Show1 f, Show1 g) => Show1 (f :+: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 f => Show2 (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownShow1 g => Show2 (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerShow2 p => Show2 (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipShow2 p => Show2 (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedContravariant (K1 i c)Defined in base-4.20.2.0 · Data.Functor.ContravariantContravariant (Forget r a)Defined in profunctors-5.6.3 · Data.Profunctor.TypesContravariant f => Contravariant (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Contravariant f, Contravariant g) => Contravariant (Product f g)Defined in base-4.20.2.0 · Data.Functor.Contravariant(Contravariant f, Contravariant g) => Contravariant (Sum f g)Defined in base-4.20.2.0 · Data.Functor.Contravariant(Contravariant f, Contravariant g) => Contravariant (f :*: g)Defined in base-4.20.2.0 · Data.Functor.Contravariant(Contravariant f, Contravariant g) => Contravariant (f :+: g)Defined in base-4.20.2.0 · Data.Functor.ContravariantNFData1 ((:~~:) a)Defined in deepseq-1.5.0.0 · Control.DeepSeq(NFData1 f, NFData1 g) => NFData1 (Product f g)Defined in deepseq-1.5.0.0 · Control.DeepSeq(NFData1 f, NFData1 g) => NFData1 (Sum f g)Defined in deepseq-1.5.0.0 · Control.DeepSeqUniform a => GUniform (K1 i a)Defined in random-1.2.1.3 · System.Random.Internal(GFinite f, GFinite g) => GUniform (f :+: g)Defined in random-1.2.1.3 · System.Random.Internal(GUniform f, GUniform g) => GUniform (f :*: g)Defined in random-1.2.1.3 · System.Random.InternalFinite a => GFinite (K1 _x a)Defined in random-1.2.1.3 · System.Random.GFinite(GFinite a, GFinite b) => GFinite (a :*: b)Defined in random-1.2.1.3 · System.Random.GFinite(GFinite a, GFinite b) => GFinite (a :+: b)Defined in random-1.2.1.3 · System.Random.GFiniteMonadThrow m => MonadThrow (ContT r m)Defined in exceptions-0.10.9 · Control.Monad.CatchGBinaryGet a => GSumGet (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.Generic(GSumGet a, GSumGet b) => GSumGet (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.GenericSumSize (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.Generic(SumSize a, SumSize b) => SumSize (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.GenericGBinaryPut a => GSumPut (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.Generic(GSumPut a, GSumPut b) => GSumPut (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic(Hashable1 f, Hashable1 g) => Hashable1 (Product f g)Defined in hashable-1.4.7.0 · Data.Hashable.Class(Hashable1 f, Hashable1 g) => Hashable1 (Sum f g)Defined in hashable-1.4.7.0 · Data.Hashable.ClassSumSize (C1 c a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances(SumSize a, SumSize b) => SumSize (a :+: b)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.InstancesPrimMonad m => PrimMonad (ContT r m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitivePrim a => Prim (Const a b)Defined in primitive-0.9.1.0 · Data.Primitive.TypesAssoc p => Assoc (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipSwap p => Swap (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipDistributive f => Distributive (Star f a)Defined in profunctors-5.6.3 · Data.Profunctor.Types(Distributive a, Distributive b) => Distributive (a :*: b)Defined in distributive-0.6.2.1 · Data.Distributive(Distributive f, Distributive g) => Distributive (Product f g)Defined in distributive-0.6.2.1 · Data.Distributive(GDistributive a, GDistributive b) => GDistributive (a :*: b)Defined in distributive-0.6.2.1 · Data.Distributive.Generic(Eq1 f, Eq p) => GEq (Rec1 f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Ord1 f, Ord p) => GOrd (Rec1 f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon f => IsNullaryCon (S1 s f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryDataType (C1 c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryDataType (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Read1 f, Read p) => GReadCon (Rec1 f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Show1 f, Show p) => GShowCon (Rec1 f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Comonad f, Comonad g) => Comonad (Sum f g)Defined in comonad-5.0.9 · Control.ComonadBiapplicative p => Biapplicative (Flip p)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBiapplicative p => Biapplicative (WrappedBifunctor p)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedApplicative f => Biapplicative (Clown f)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownApplicative g => Biapplicative (Joker g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Decidable f, Decidable g) => Decidable (Product f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Decidable f, Decidable g) => Decidable (f :*: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Divisible f, Divisible g) => Divisible (Product f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Divisible f, Divisible g) => Divisible (f :*: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleGG (K1 i c)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generic(GG f, GG g) => GG (f :*: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generic(GG f, GG g) => GG (f :+: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.GenericApply f => Biapply (Clown f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply g => Biapply (Joker g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBiapply p => Biapply (Flip p)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBiapply p => Biapply (WrappedBifunctor p)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassSemigroup c => Alt (K1 i c)Defined in semigroupoids-6.0.1 · Data.Functor.Altsince 5.3.8(Alt f, Alt g) => Alt (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Alt(Alt f, Alt g) => Alt (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.AltSemigroup c => Apply (K1 i c)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassA K1 i c is not Applicative unless its c is a Monoid, but it is an instance of Apply
Apply (Cokleisli w a)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassApply (ContT r m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Functor g, Apply h) => Apply (Lan g h)Defined in kan-extensions-5.2.7 · Data.Functor.Kan.Lan(Apply f, Apply g) => Apply (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Apply f, Apply g) => Apply (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind (ContT r m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Bind f, Bind g) => Bind (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Bind f, Bind g) => Bind (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend (K1 i c)Defined in semigroupoids-6.0.1 · Data.Functor.Extend(Extend f, Extend g) => Extend (Sum f g)Defined in semigroupoids-6.0.1 · Data.Functor.Extend(Extend f, Extend g) => Extend (f :+: g)Defined in semigroupoids-6.0.1 · Data.Functor.Extend(Conclude f, Conclude g) => Conclude (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Conclude f, Conclude g) => Conclude (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Decide f, Decide g) => Decide (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Decide(Decide f, Decide g) => Decide (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Decide(Divise f, Divise g) => Divise (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Divise(Divise f, Divise g) => Divise (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DiviseMonoid c => Plus (K1 i c)Defined in semigroupoids-6.0.1 · Data.Functor.Plus(Plus f, Plus g) => Plus (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus(Plus f, Plus g) => Plus (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.PlusBitraversable1 p => Bitraversable1 (Flip p)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassBitraversable1 p => Bitraversable1 (WrappedBifunctor p)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Bitraversable1 (Clown f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 g => Bitraversable1 (Joker g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Traversable1 f, Traversable1 g) => Traversable1 (Product f g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Traversable1 f, Traversable1 g) => Traversable1 (Sum f g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Traversable1 f, Traversable1 g) => Traversable1 (f :*: g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Traversable1 f, Traversable1 g) => Traversable1 (f :+: g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassDefault a => Default (Const a b)Defined in data-default-0.8.0.1 · Data.Default.InternalDefault a => GDefault (K1 i a)Defined in data-default-0.8.0.1 · Data.Default.InternalA unary constructor wraps the default value of the argument type.
GDefault a => GDefault (a :+: b)Defined in data-default-0.8.0.1 · Data.Default.InternalFor sums, we arbitrarily choose the left side.
(GDefault a, GDefault b) => GDefault (a :*: b)Defined in data-default-0.8.0.1 · Data.Default.InternalDefault of products = product of defaults.
Functor f => Choice (Joker f)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceArrowChoice p => Choice (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceChoice p => Choice (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantCochoice p => Cochoice (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantClosed p => Closed (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantMapping p => Mapping (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantArrowLoop p => Costrong (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.StrongCostrong p => Costrong (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantContravariant f => Strong (Clown f)Defined in profunctors-5.6.3 · Data.Profunctor.StrongArrow p => Strong (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.StrongStrong p => Strong (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantContravariant f => Profunctor (Clown f)Defined in profunctors-5.6.3 · Data.Profunctor.UnsafeFunctor f => Profunctor (Joker f)Defined in profunctors-5.6.3 · Data.Profunctor.UnsafeArrow p => Profunctor (WrappedArrow p)Defined in profunctors-5.6.3 · Data.Profunctor.TypesProfunctor p => Profunctor (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantProfunctor p => Profunctor (Codensity p)Defined in profunctors-5.6.3 · Data.Profunctor.RanTraversing p => Traversing (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantProfunctorComonad (Product p)Defined in profunctors-5.6.3 · Data.Profunctor.MonadProfunctorMonad (Sum p)Defined in profunctors-5.6.3 · Data.Profunctor.Monad(Semigroup a, Monoid a) => GMonoid (K1 i a)Defined in semigroups-0.20 · Data.Semigroup.Generic(GMonoid f, GMonoid g) => GMonoid (f :*: g)Defined in semigroups-0.20 · Data.Semigroup.GenericSemigroup a => GSemigroup (K1 i a)Defined in semigroups-0.20 · Data.Semigroup.Generic(GSemigroup f, GSemigroup g) => GSemigroup (f :*: g)Defined in semigroups-0.20 · Data.Semigroup.Generic(Representable f, Representable g) => Representable (Product f g)Defined in adjunctions-4.4.3 · Data.Functor.Rep(Representable f, Representable g) => Representable (f :*: g)Defined in adjunctions-4.4.3 · Data.Functor.Rep(Representable f, Representable g) => Representable (Product f g)Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Rep(Representable f, Representable g) => Representable (f :*: g)Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Rep(GIndex f, GIndex g) => GIndex (f :*: g)Defined in adjunctions-4.4.3 · Data.Functor.Rep(GTabulate f, GTabulate g) => GTabulate (f :*: g)Defined in adjunctions-4.4.3 · Data.Functor.RepInvariant (K1 i c)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant (Forget r a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant f => Invariant (Star f a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
(Invariant f, Invariant g) => Invariant (Product f g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Functor.Product
(Invariant f, Invariant g) => Invariant (Sum f g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Functor.Sum
(Invariant l, Invariant r) => Invariant (l :*: r)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
(Invariant l, Invariant r) => Invariant (l :+: r)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Bifunctor p => Invariant2 (WrappedBifunctor p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Arrow arr => Invariant2 (WrappedArrow arr)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant f => Invariant2 (Clown f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant g => Invariant2 (Joker g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant2 p => Invariant2 (Flip p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant2 p => Invariant2 (Codensity p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Profunctor p => Invariant2 (WrappedProfunctor p)Defined in invariant-0.6.4 · Data.Functor.InvariantSelective (ContT r m)Defined in selective-0.7.0.1 · Control.Selective(Selective f, Selective g) => Selective (Product f g)Defined in selective-0.7.0.1 · Control.SelectiveAbelian a => Abelian (Const a x)Defined in groups-0.5.3 · Data.GroupCyclic a => Cyclic (Const a x)Defined in groups-0.5.3 · Data.GroupGroup a => Group (Const a x)Defined in groups-0.5.3 · Data.GroupConst lifts groups into a functor.
Adjustable (K1 i c)Defined in keys-3.12.3 · Data.Key(Adjustable f, Adjustable g) => Adjustable (Product f g)Defined in keys-3.12.3 · Data.Key(Adjustable f, Adjustable g) => Adjustable (Sum f g)Defined in keys-3.12.3 · Data.Key(Adjustable f, Adjustable g) => Adjustable (f :*: g)Defined in keys-3.12.3 · Data.Key(Adjustable f, Adjustable g) => Adjustable (f :+: g)Defined in keys-3.12.3 · Data.KeyFoldableWithKey (K1 i c)Defined in keys-3.12.3 · Data.Key(FoldableWithKey f, FoldableWithKey g) => FoldableWithKey (Product f g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey f, FoldableWithKey g) => FoldableWithKey (Sum f g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey f, FoldableWithKey g) => FoldableWithKey (f :*: g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey f, FoldableWithKey g) => FoldableWithKey (f :+: g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey1 f, FoldableWithKey1 g) => FoldableWithKey1 (Product f g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey1 f, FoldableWithKey1 g) => FoldableWithKey1 (Sum f g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey1 f, FoldableWithKey1 g) => FoldableWithKey1 (f :*: g)Defined in keys-3.12.3 · Data.Key(FoldableWithKey1 f, FoldableWithKey1 g) => FoldableWithKey1 (f :+: g)Defined in keys-3.12.3 · Data.KeyIndexable (K1 i c)Defined in keys-3.12.3 · Data.Key(Indexable f, Indexable g) => Indexable (Product f g)Defined in keys-3.12.3 · Data.Key(Indexable f, Indexable g) => Indexable (Sum f g)Defined in keys-3.12.3 · Data.Key(Indexable g, Indexable f) => Indexable (f :*: g)Defined in keys-3.12.3 · Data.KeyKeyed (K1 i c)Defined in keys-3.12.3 · Data.Key(Keyed f, Keyed g) => Keyed (Product f g)Defined in keys-3.12.3 · Data.Key(Keyed f, Keyed g) => Keyed (Sum f g)Defined in keys-3.12.3 · Data.Key(Keyed g, Keyed f) => Keyed (f :*: g)Defined in keys-3.12.3 · Data.Key(Keyed g, Keyed f) => Keyed (f :+: g)Defined in keys-3.12.3 · Data.KeyLookup (K1 i c)Defined in keys-3.12.3 · Data.Key(Indexable g, Indexable f) => Lookup (f :*: g)Defined in keys-3.12.3 · Data.Key(Lookup f, Lookup g) => Lookup (Product f g)Defined in keys-3.12.3 · Data.Key(Lookup f, Lookup g) => Lookup (Sum f g)Defined in keys-3.12.3 · Data.KeyTraversableWithKey (K1 i c)Defined in keys-3.12.3 · Data.Key(TraversableWithKey f, TraversableWithKey g) => TraversableWithKey (Product f g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey f, TraversableWithKey g) => TraversableWithKey (Sum f g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey f, TraversableWithKey g) => TraversableWithKey (f :*: g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey f, TraversableWithKey g) => TraversableWithKey (f :+: g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey1 f, TraversableWithKey1 g) => TraversableWithKey1 (Product f g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey1 f, TraversableWithKey1 g) => TraversableWithKey1 (Sum f g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey1 f, TraversableWithKey1 g) => TraversableWithKey1 (f :*: g)Defined in keys-3.12.3 · Data.Key(TraversableWithKey1 f, TraversableWithKey1 g) => TraversableWithKey1 (f :+: g)Defined in keys-3.12.3 · Data.Key(Zip f, Zip g) => Zip (Product f g)Defined in keys-3.12.3 · Data.Key(Zip f, Zip g) => Zip (f :*: g)Defined in keys-3.12.3 · Data.Key(ZipWithKey f, ZipWithKey g) => ZipWithKey (Product f g)Defined in keys-3.12.3 · Data.Key(ZipWithKey f, ZipWithKey g) => ZipWithKey (f :*: g)Defined in keys-3.12.3 · Data.Key(Copointed f, Copointed g) => Copointed (Sum f g)Defined in pointed-5.0.4 · Data.Copointed(Copointed f, Copointed g) => Copointed (f :+: g)Defined in pointed-5.0.4 · Data.CopointedPointed (Cokleisli w a)Defined in pointed-5.0.4 · Data.PointedPointed (ContT r m)Defined in pointed-5.0.4 · Data.Pointed(Pointed f, Pointed g) => Pointed (f :*: g)Defined in pointed-5.0.4 · Data.Pointed(Pointed p, Pointed q) => Pointed (Product p q)Defined in pointed-5.0.4 · Data.Pointed(Adjunction f g, Adjunction f' g') => Adjunction (Sum f f') (Product g g')Defined in adjunctions-4.4.3 · Data.Functor.Adjunction(Adjunction f g, Adjunction f' g') => Adjunction (f :+: f') (g :*: g')Defined in adjunctions-4.4.3 · Data.Functor.AdjunctionMonad f => Monad (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((:*:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((:+:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Typeable i, Data p, Data c) => Data (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataBifunctor p => Functor (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBifunctor p => Functor (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedFunctor (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownFunctor f => Functor (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFunctor g => Functor (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerProfunctor p => Functor (Codensity p a)Defined in profunctors-5.6.3 · Data.Profunctor.Ran(Functor f, Functor g) => Functor (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Functor f, Functor g) => Functor (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadFix f => MonadFix (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative f => Applicative (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Applicative f, Applicative g) => Applicative (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Applicative f, Applicative g) => Applicative (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsBifoldable p => Foldable (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBifoldable p => Foldable (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedFoldable (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownFoldable f => Foldable (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableFoldable g => Foldable (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Foldable f, Foldable g) => Foldable (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Foldable f, Foldable g) => Foldable (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableBitraversable p => Traversable (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FlipBitraversable p => Traversable (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedTraversable (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownTraversable f => Traversable (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableTraversable g => Traversable (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Traversable f, Traversable g) => Traversable (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Traversable f, Traversable g) => Traversable (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative f => Alternative (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Alternative f, Applicative g) => Alternative (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Alternative f, Applicative g) => Alternative (f :.: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsMonadPlus f => MonadPlus (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Arrow p, Arrow q) => Arrow (Product p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(ArrowChoice p, ArrowChoice q) => ArrowChoice (Product p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(ArrowLoop p, ArrowLoop q) => ArrowLoop (Product p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(ArrowPlus p, ArrowPlus q) => ArrowPlus (Product p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(ArrowZero p, ArrowZero q) => ArrowZero (Product p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.ProductMonadZip f => MonadZip (M1 i c f)Defined in base-4.20.2.0 · Control.Monad.Zip(Bifoldable f, Bifoldable g) => Bifoldable (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Bifoldable p, Bifoldable q) => Bifoldable (Sum p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Bifoldable1 f, Bifoldable1 g) => Bifoldable1 (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Bifunctor f, Bifunctor g) => Bifunctor (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Bifunctor p, Bifunctor q) => Bifunctor (Sum p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Bitraversable f, Bitraversable g) => Bitraversable (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Bitraversable p, Bitraversable q) => Bitraversable (Sum p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumFoldable1 f => Foldable1 (M1 i c f)Defined in base-4.20.2.0 · Data.Foldable1Foldable1 g => Foldable1 (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Foldable1 f, Foldable1 g) => Foldable1 (Compose f g)Defined in base-4.20.2.0 · Data.Foldable1(Foldable1 f, Foldable1 g) => Foldable1 (f :.: g)Defined in base-4.20.2.0 · Data.Foldable1Eq1 f => Eq1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanEq1 g => Eq1 (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Eq1 f, Eq1 g) => Eq1 (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Eq1 f, Eq1 g) => Eq1 (f :.: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Eq1 f, Eq a) => Eq1 (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Clown(Eq2 p, Eq a) => Eq1 (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Eq2 p, Eq a) => Eq1 (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Wrapped(Eq2 f, Eq2 g) => Eq2 (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Eq2 f, Eq2 g) => Eq2 (Sum f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumOrd1 f => Ord1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanOrd1 g => Ord1 (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Ord1 f, Ord1 g) => Ord1 (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Ord1 f, Ord1 g) => Ord1 (f :.: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Ord1 f, Ord a) => Ord1 (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Clown(Ord2 p, Ord a) => Ord1 (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Ord2 p, Ord a) => Ord1 (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Wrapped(Ord2 f, Ord2 g) => Ord2 (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Ord2 f, Ord2 g) => Ord2 (Sum f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumRead1 f => Read1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanRead1 g => Read1 (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Read1 f, Read1 g) => Read1 (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Read1 f, Read1 g) => Read1 (f :.: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Read1 f, Read a) => Read1 (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Clown(Read2 p, Read a) => Read1 (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Read2 p, Read a) => Read1 (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Wrapped(Read2 f, Read2 g) => Read2 (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Read2 f, Read2 g) => Read2 (Sum f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumShow1 f => Show1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphanShow1 g => Show1 (Joker g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Joker(Show1 f, Show1 g) => Show1 (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Compose(Show1 f, Show1 g) => Show1 (f :.: g)Defined in base-orphans-0.9.3 · Data.Orphans · orphan(Show1 f, Show a) => Show1 (Clown f a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Clown(Show2 p, Show a) => Show1 (Flip p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Show2 p, Show a) => Show1 (WrappedBifunctor p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Wrapped(Show2 f, Show2 g) => Show2 (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Show2 f, Show2 g) => Show2 (Sum f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumContravariant f => Contravariant (M1 i c f)Defined in base-4.20.2.0 · Data.Functor.Contravariant(Functor f, Contravariant g) => Contravariant (Compose f g)Defined in base-4.20.2.0 · Data.Functor.Contravariant(Functor f, Contravariant g) => Contravariant (f :.: g)Defined in base-4.20.2.0 · Data.Functor.Contravariant(NFData1 f, NFData1 g) => NFData1 (Compose f g)Defined in deepseq-1.5.0.0 · Control.DeepSeqGUniform f => GUniform (M1 i c f)Defined in random-1.2.1.3 · System.Random.InternalGFinite a => GFinite (M1 _x _y a)Defined in random-1.2.1.3 · System.Random.GFinite(Hashable1 f, Hashable1 g, Hashable a) => Hashable (Product f g a)Defined in hashable-1.4.7.0 · Data.Hashable.Class(Hashable1 f, Hashable1 g, Hashable a) => Hashable (Sum f g a)Defined in hashable-1.4.7.0 · Data.Hashable.Class(Hashable1 f, Hashable1 g) => Hashable1 (Compose f g)Defined in hashable-1.4.7.0 · Data.Hashable.Class(Swap p, Swap q) => Swap (Product p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Swap p, Swap q) => Swap (Sum p q)Defined in bifunctors-5.6.2 · Data.Bifunctor.SumDistributive f => Distributive (M1 i c f)Defined in distributive-0.6.2.1 · Data.Distributive(Distributive a, Distributive b) => Distributive (a :.: b)Defined in distributive-0.6.2.1 · Data.Distributive(Distributive f, Distributive g) => Distributive (Compose f g)Defined in distributive-0.6.2.1 · Data.DistributiveGDistributive f => GDistributive (M1 i c f)Defined in distributive-0.6.2.1 · Data.Distributive.Generic(Distributive a, GDistributive b) => GDistributive (a :.: b)Defined in distributive-0.6.2.1 · Data.Distributive.GenericEq c => GEq (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GEq (f p), GEq (g p)) => GEq ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GEq (f p), GEq (g p)) => GEq ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd c => GOrd (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd (f p), GOrd (g p)) => GOrd ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd (f p), GOrd (g p)) => GOrd ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Constructor c, GReadCon (f p), IsNullaryCon f) => GRead (C1 c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead (f p), GRead (g p)) => GRead ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead (f p), IsNullaryDataType f) => GRead (D1 d f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow (f p) => GShow (D1 d f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Constructor c, GShowCon (f p), IsNullaryCon f) => GShow (C1 c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShow (f p), GShow (g p)) => GShow ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalIsNullaryCon (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRead c => GReadCon (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Selector s, GReadCon (f p)) => GReadCon (S1 s f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GReadCon (f p), GReadCon (g p)) => GReadCon ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalShow c => GShowCon (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Selector s, GShowCon (f p)) => GShowCon (S1 s f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShowCon (f p), GShowCon (g p)) => GShowCon ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Biapplicative f, Biapplicative g) => Biapplicative (Product f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.ProductDecidable f => Decidable (M1 i c f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Applicative f, Decidable g) => Decidable (Compose f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Applicative f, Decidable g) => Decidable (f :.: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (M1 i c f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Applicative f, Divisible g) => Divisible (Compose f g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Divisible(Applicative f, Divisible g) => Divisible (f :.: g)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleGG f => GG (M1 i c f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generic(Biapply p, Biapply q) => Biapply (Product p q)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassAlt f => Alt (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Alt(Alt f, Functor g) => Alt (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Alt(Alt f, Functor g) => Alt (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.AltApply f => Apply (M1 i t f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Apply f, Apply g) => Apply (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Apply f, Apply g) => Apply (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind f => Bind (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend f => Extend (M1 i t f)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendConclude f => Conclude (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Apply f, Applicative f, Conclude g) => Conclude (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Apply f, Applicative f, Conclude g) => Conclude (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeDecide f => Decide (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Decide(Apply f, Decide g) => Decide (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Decide(Apply f, Decide g) => Decide (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDivise f => Divise (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Divise(Apply f, Divise g) => Divise (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Divise(Apply f, Divise g) => Divise (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DivisePlus f => Plus (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus(Plus f, Functor g) => Plus (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus(Plus f, Functor g) => Plus (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus(Bitraversable1 f, Bitraversable1 g) => Bitraversable1 (Product f g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 f => Traversable1 (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassTraversable1 g => Traversable1 (Joker g a)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Traversable1 f, Traversable1 g) => Traversable1 (Compose f g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Traversable1 f, Traversable1 g) => Traversable1 (f :.: g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassGDefault a => GDefault (M1 i c a)Defined in data-default-0.8.0.1 · Data.Default.InternalDefault of wrapper = wrapper of default.
(Choice p, Choice q) => Choice (Product p q)Defined in profunctors-5.6.3 · Data.Profunctor.Choice(Choice p, Choice q) => Choice (Sum p q)Defined in profunctors-5.6.3 · Data.Profunctor.Choice(Cochoice p, Cochoice q) => Cochoice (Product p q)Defined in profunctors-5.6.3 · Data.Profunctor.Choice(Cochoice p, Cochoice q) => Cochoice (Sum p q)Defined in profunctors-5.6.3 · Data.Profunctor.Choice(Closed p, Closed q) => Closed (Product p q)Defined in profunctors-5.6.3 · Data.Profunctor.Closed(Closed p, Closed q) => Closed (Sum p q)Defined in profunctors-5.6.3 · Data.Profunctor.Closed(Costrong p, Costrong q) => Costrong (Product p q)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Costrong p, Costrong q) => Costrong (Sum p q)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Strong p, Strong q) => Strong (Product p q)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Strong p, Strong q) => Strong (Sum p q)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Profunctor p, Profunctor q) => Profunctor (Product p q)Defined in profunctors-5.6.3 · Data.Profunctor.Unsafe(Profunctor p, Profunctor q) => Profunctor (Sum p q)Defined in profunctors-5.6.3 · Data.Profunctor.UnsafeComonad f => ProfunctorComonad (Tannen f)Defined in profunctors-5.6.3 · Data.Profunctor.MonadComonad f => ProfunctorComonad (Cayley f)Defined in profunctors-5.6.3 · Data.Profunctor.CayleyCayley transforms Comonads in Hask into comonads on Prof
Category p => ProfunctorComonad (Rift p)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionCategory p => ProfunctorComonad (Ran p)Defined in profunctors-5.6.3 · Data.Profunctor.RanMonad f => ProfunctorMonad (Tannen f)Defined in profunctors-5.6.3 · Data.Profunctor.MonadCategory p => ProfunctorMonad (Procompose p)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Functor f, Monad f) => ProfunctorMonad (Cayley f)Defined in profunctors-5.6.3 · Data.Profunctor.CayleyCayley transforms Monads in Hask into monads on Prof
GMonoid f => GMonoid (M1 i c f)Defined in semigroups-0.20 · Data.Semigroup.GenericGSemigroup f => GSemigroup (M1 i c f)Defined in semigroups-0.20 · Data.Semigroup.GenericRepresentable f => Representable (M1 i c f)Defined in adjunctions-4.4.3 · Data.Functor.Rep(Representable f, Representable g) => Representable (Compose f g)Defined in adjunctions-4.4.3 · Data.Functor.Rep(Representable f, Representable g) => Representable (f :.: g)Defined in adjunctions-4.4.3 · Data.Functor.RepGIndex f => GIndex (M1 i c f)Defined in adjunctions-4.4.3 · Data.Functor.Rep(Representable f, GIndex g) => GIndex (f :.: g)Defined in adjunctions-4.4.3 · Data.Functor.RepGTabulate f => GTabulate (M1 i c f)Defined in adjunctions-4.4.3 · Data.Functor.Rep(Representable f, GTabulate g) => GTabulate (f :.: g)Defined in adjunctions-4.4.3 · Data.Functor.RepBifunctor p => Invariant (WrappedBifunctor p a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Arrow arr => Invariant (WrappedArrow arr a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant (Clown f a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant f => Invariant (M1 i t f)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
Invariant g => Invariant (Joker g a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant2 p => Invariant (Flip p a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
Invariant2 p => Invariant (Codensity p a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Profunctor p => Invariant (WrappedProfunctor p a)Defined in invariant-0.6.4 · Data.Functor.Invariant(Invariant f, Invariant g) => Invariant (Compose f g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Functor.Compose
(Invariant f, Invariant g) => Invariant (f :.: g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom GHC.Generics
(Invariant2 f, Invariant2 g) => Invariant2 (Product f g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
(Invariant2 p, Invariant2 q) => Invariant2 (Sum p q)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
(Applicative f, Selective g) => Selective (Compose f g)Defined in selective-0.7.0.1 · Control.Selective(Abelian (f a), Abelian (g a)) => Abelian ((:*:) f g a)Defined in groups-0.5.3 · Data.Group(Group (f a), Group (g a)) => Group ((:*:) f g a)Defined in groups-0.5.3 · Data.GroupProduct of groups, Functor style.
Adjustable f => Adjustable (M1 i c f)Defined in keys-3.12.3 · Data.Key(Adjustable f, Adjustable g) => Adjustable (g :.: f)Defined in keys-3.12.3 · Data.KeyFoldableWithKey f => FoldableWithKey (M1 i c f)Defined in keys-3.12.3 · Data.Key(FoldableWithKey f, FoldableWithKey m) => FoldableWithKey (Compose f m)Defined in keys-3.12.3 · Data.KeyFoldableWithKey1 f => FoldableWithKey1 (M1 i c f)Defined in keys-3.12.3 · Data.Key(FoldableWithKey1 f, FoldableWithKey1 m) => FoldableWithKey1 (Compose f m)Defined in keys-3.12.3 · Data.KeyIndexable f => Indexable (M1 i c f)Defined in keys-3.12.3 · Data.Key(Indexable f, Indexable g) => Indexable (Compose f g)Defined in keys-3.12.3 · Data.Key(Indexable g, Indexable f) => Indexable (g :.: f)Defined in keys-3.12.3 · Data.KeyKeyed f => Keyed (M1 i c f)Defined in keys-3.12.3 · Data.Key(Keyed f, Keyed g) => Keyed (Compose f g)Defined in keys-3.12.3 · Data.Key(Keyed g, Keyed f) => Keyed (g :.: f)Defined in keys-3.12.3 · Data.KeyLookup f => Lookup (M1 i c f)Defined in keys-3.12.3 · Data.Key(Indexable g, Indexable f) => Lookup (g :.: f)Defined in keys-3.12.3 · Data.Key(Lookup f, Lookup g) => Lookup (Compose f g)Defined in keys-3.12.3 · Data.KeyTraversableWithKey f => TraversableWithKey (M1 i c f)Defined in keys-3.12.3 · Data.Key(TraversableWithKey f, TraversableWithKey m) => TraversableWithKey (Compose f m)Defined in keys-3.12.3 · Data.KeyTraversableWithKey1 f => TraversableWithKey1 (M1 i c f)Defined in keys-3.12.3 · Data.Key(TraversableWithKey1 f, TraversableWithKey1 m) => TraversableWithKey1 (Compose f m)Defined in keys-3.12.3 · Data.KeyZip f => Zip (M1 i c f)Defined in keys-3.12.3 · Data.Key(Zip f, Zip g) => Zip (Compose f g)Defined in keys-3.12.3 · Data.Key(Zip f, Zip g) => Zip (g :.: f)Defined in keys-3.12.3 · Data.KeyZipWithKey f => ZipWithKey (M1 i c f)Defined in keys-3.12.3 · Data.Key(ZipWithKey f, ZipWithKey g) => ZipWithKey (Compose f g)Defined in keys-3.12.3 · Data.Key(ZipWithKey f, ZipWithKey g) => ZipWithKey (g :.: f)Defined in keys-3.12.3 · Data.KeyCopointed f => Copointed (M1 i c f)Defined in pointed-5.0.4 · Data.Copointed(Copointed f, Copointed g) => Copointed (f :.: g)Defined in pointed-5.0.4 · Data.Copointed(Copointed p, Copointed q) => Copointed (Compose p q)Defined in pointed-5.0.4 · Data.CopointedPointed f => Pointed (M1 i c f)Defined in pointed-5.0.4 · Data.Pointed(Pointed f, Pointed g) => Pointed (f :.: g)Defined in pointed-5.0.4 · Data.Pointed(Pointed p, Pointed q) => Pointed (Compose p q)Defined in pointed-5.0.4 · Data.PointedProfunctorAdjunction (Procompose p) (Rift p)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Adjunction f g, Adjunction f' g') => Adjunction (Compose f' f) (Compose g g')Defined in adjunctions-4.4.3 · Data.Functor.Adjunction(Adjunction f g, Adjunction f' g') => Adjunction (f' :.: f) (g :.: g')Defined in adjunctions-4.4.3 · Data.Functor.Adjunction(Data p, Data (f p), Typeable c, Typeable i, Typeable f) => Data (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Typeable f, Typeable g, Data p, Data (f (g p))) => Data ((:.:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data(Functor (f a), Functor (g a)) => Functor (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Functor (f a), Functor (g a)) => Functor (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Foldable (f a), Foldable (g a)) => Foldable (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Foldable (f a), Foldable (g a)) => Foldable (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Traversable (f a), Traversable (g a)) => Traversable (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Traversable (f a), Traversable (g a)) => Traversable (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Applicative f, Arrow p) => Arrow (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Applicative f, Arrow p) => Arrow (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Applicative f, ArrowChoice p) => ArrowChoice (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Applicative f, ArrowChoice p) => ArrowChoice (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Applicative f, ArrowLoop p) => ArrowLoop (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Applicative f, ArrowLoop p) => ArrowLoop (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Applicative f, ArrowPlus p) => ArrowPlus (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Applicative f, ArrowPlus p) => ArrowPlus (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Applicative f, ArrowZero p) => ArrowZero (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Applicative f, ArrowZero p) => ArrowZero (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Foldable f, Bifoldable p) => Bifoldable (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Foldable1 f, Bifoldable1 p) => Bifoldable1 (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Functor f, Bifunctor p) => Bifunctor (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Traversable f, Bitraversable p) => Bitraversable (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Eq2 f, Eq2 g, Eq a) => Eq1 (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Eq2 f, Eq2 g, Eq a) => Eq1 (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Eq1 f, Eq2 p) => Eq2 (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Ord2 f, Ord2 g, Ord a) => Ord1 (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Ord2 f, Ord2 g, Ord a) => Ord1 (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Ord1 f, Ord2 p) => Ord2 (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Read2 f, Read2 g, Read a) => Read1 (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Read2 f, Read2 g, Read a) => Read1 (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Read1 f, Read2 p) => Read2 (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Show2 f, Show2 g, Show a) => Show1 (Product f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Show2 f, Show2 g, Show a) => Show1 (Sum f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Show1 f, Show2 p) => Show2 (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Hashable1 f, Hashable1 g, Hashable a) => Hashable (Compose f g a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassIn general, hash (Compose x) ≠ hash x. However, hashWithSalt satisfies
its variant of this equivalence.
(Functor f, Swap p) => Swap (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.TannenGEq (f p) => GEq (M1 i c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Eq1 f, GEq (g p)) => GEq ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (f p) => GOrd (M1 i c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Ord1 f, GOrd (g p)) => GOrd ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Read1 f, GReadCon (g p)) => GReadCon ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Show1 f, GShowCon (g p)) => GShowCon ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Applicative f, Biapplicative p) => Biapplicative (Tannen f p)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Apply f, Biapply p) => Biapply (Tannen f p)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Traversable1 f, Bitraversable1 p) => Bitraversable1 (Tannen f p)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Functor f, Choice p) => Choice (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Choice(Functor f, Choice p) => Choice (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Choice p, Choice q) => Choice (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Functor f, Cochoice p) => Cochoice (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Choice(Functor f, Cochoice p) => Cochoice (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Functor f, Closed p) => Closed (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Closed(Functor f, Closed p) => Closed (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Closed p, Closed q) => Closed (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Functor f, Mapping p) => Mapping (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Mapping(Functor f, Mapping p) => Mapping (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Mapping p, Mapping q) => Mapping (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Functor f, Costrong p) => Costrong (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Functor f, Costrong p) => Costrong (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Corepresentable p, Corepresentable q) => Costrong (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Functor f, Strong p) => Strong (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Strong(Functor f, Strong p) => Strong (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Strong p, Strong q) => Strong (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Functor f, Profunctor p) => Profunctor (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Unsafe(Functor f, Profunctor p) => Profunctor (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Profunctor p, Profunctor q) => Profunctor (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Profunctor p, Profunctor q) => Profunctor (Rift p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Profunctor p, Profunctor q) => Profunctor (Ran p q)Defined in profunctors-5.6.3 · Data.Profunctor.Ran(Functor f, Traversing p) => Traversing (Tannen f p)Defined in profunctors-5.6.3 · Data.Profunctor.Traversing(Functor f, Traversing p) => Traversing (Cayley f p)Defined in profunctors-5.6.3 · Data.Profunctor.Cayley(Traversing p, Traversing q) => Traversing (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Corepresentable p, Corepresentable q) => Corepresentable (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Representable p, Representable q) => Representable (Procompose p q)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionThe composition of two Representable Profunctors is Representable by the composition of their representations.
(Invariant f, Invariant2 p) => Invariant2 (Tannen f p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
(Invariant f, Invariant2 p) => Invariant2 (Cayley f p)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
(Invariant2 p, Invariant2 q) => Invariant2 (Procompose p q)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
(Invariant2 p, Invariant2 q) => Invariant2 (Rift p q)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
(Invariant2 p, Invariant2 q) => Invariant2 (Ran p q)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Abelian (f (g a)) => Abelian ((:.:) f g a)Defined in groups-0.5.3 · Data.GroupGroup (f (g a)) => Group ((:.:) f g a)Defined in groups-0.5.3 · Data.Group(Cosieve p f, Cosieve q g) => Cosieve (Procompose p q) (Compose f g)Defined in profunctors-5.6.3 · Data.Profunctor.Composition(Sieve p f, Sieve q g) => Sieve (Procompose p q) (Compose g f)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctor p => Functor (Procompose p q a)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctor p => Functor (Rift p q a)Defined in profunctors-5.6.3 · Data.Profunctor.CompositionProfunctor q => Functor (Ran p q a)Defined in profunctors-5.6.3 · Data.Profunctor.Ran(Functor f, Bifunctor p) => Functor (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Foldable f, Bifoldable p) => Foldable (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Traversable f, Bitraversable p) => Traversable (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Eq1 f, Eq2 p, Eq a) => Eq1 (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Ord1 f, Ord2 p, Ord a) => Ord1 (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Read1 f, Read2 p, Read a) => Read1 (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(Show1 f, Show2 p, Show a) => Show1 (Tannen f p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.TannenInvariant2 p => Invariant (Procompose p q a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant2 p => Invariant (Rift p q a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
Invariant2 q => Invariant (Ran p q a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the profunctors package
(Invariant f, Invariant2 p) => Invariant (Tannen f p a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
(Bifoldable p, Foldable f, Foldable g) => Bifoldable (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Bifoldable1 p, Foldable1 f, Foldable1 g) => Bifoldable1 (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Bifunctor p, Functor f, Functor g) => Bifunctor (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Bitraversable p, Traversable f, Traversable g) => Bitraversable (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Eq2 p, Eq1 f, Eq1 g) => Eq2 (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Ord2 p, Ord1 f, Ord1 g) => Ord2 (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Read2 p, Read1 f, Read1 g) => Read2 (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Show2 p, Show1 f, Show1 g) => Show2 (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(f ~ g, Functor f, Swap p) => Swap (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Biapplicative p, Applicative f, Applicative g) => Biapplicative (Biff p f g)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Biapply p, Apply f, Apply g) => Biapply (Biff p f g)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Class(Bitraversable1 p, Traversable1 f, Traversable1 g) => Bitraversable1 (Biff p f g)Defined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.Class(Profunctor p, Functor f, Functor g) => Profunctor (Biff p f g)Defined in profunctors-5.6.3 · Data.Profunctor.Unsafe(Invariant2 p, Invariant f, Invariant g) => Invariant2 (Biff p f g)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
(Bifunctor p, Functor g) => Functor (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Bifoldable p, Foldable g) => Foldable (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Bitraversable p, Traversable g) => Traversable (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Eq2 p, Eq1 f, Eq1 g, Eq a) => Eq1 (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Ord2 p, Ord1 f, Ord1 g, Ord a) => Ord1 (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Read2 p, Read1 f, Read1 g, Read a) => Read1 (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Show2 p, Show1 f, Show1 g, Show a) => Show1 (Biff p f g a)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(Invariant2 p, Invariant g) => Invariant (Biff p f g a)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the bifunctors package
type Rep1 Complex = D1 ('MetaData "Complex"
"Data.Complex"
"base"
'False) (C1 ('MetaCons ":+"
('InfixI 'NotAssociative 6
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1))Defined in base-4.20.2.0 · Data.Complextype Rep1 First = D1 ('MetaData "First"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "First"
'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 Last = D1 ('MetaData "Last"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "Last"
'PrefixI 'True) (S1 ('MetaSel ('Just "getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 Max = D1 ('MetaData "Max"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "Max"
'PrefixI 'True) (S1 ('MetaSel ('Just "getMax"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 Min = D1 ('MetaData "Min"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "Min"
'PrefixI 'True) (S1 ('MetaSel ('Just "getMin"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 WrappedMonoid = D1 ('MetaData "WrappedMonoid"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "WrapMonoid"
'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 SCC = D1 ('MetaData "SCC"
"Data.Graph"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "AcyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "NECyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec1 NonEmpty)))Defined in containers-0.7 · Data.Graphtype Rep1 Digit = D1 ('MetaData "Digit"
"Data.Sequence.Internal"
"containers-0.7-1cc3"
'False) ((C1 ('MetaCons "One"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "Two"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: (C1 ('MetaCons "Three"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: C1 ('MetaCons "Four"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))Defined in containers-0.7 · Data.Sequence.Internaltype Rep1 Elem = D1 ('MetaData "Elem"
"Data.Sequence.Internal"
"containers-0.7-1cc3"
'True) (C1 ('MetaCons "Elem"
'PrefixI 'True) (S1 ('MetaSel ('Just "getElem"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in containers-0.7 · Data.Sequence.Internaltype Rep1 FingerTree = D1 ('MetaData "FingerTree"
"Data.Sequence.Internal"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "EmptyT"
'PrefixI 'False) U1 :+: (C1 ('MetaCons "Single"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "Deep"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec1 Digit)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (FingerTree :.: Rec1 Node) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec1 Digit)))))Defined in containers-0.7 · Data.Sequence.Internaltype Rep1 Node = D1 ('MetaData "Node"
"Data.Sequence.Internal"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "Node2"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) :+: C1 ('MetaCons "Node3"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))Defined in containers-0.7 · Data.Sequence.Internaltype Rep1 ViewL = D1 ('MetaData "ViewL"
"Data.Sequence.Internal"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "EmptyL"
'PrefixI 'False) U1 :+: C1 ('MetaCons ":<"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Seq)))Defined in containers-0.7 · Data.Sequence.Internaltype Rep1 ViewR = D1 ('MetaData "ViewR"
"Data.Sequence.Internal"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "EmptyR"
'PrefixI 'False) U1 :+: C1 ('MetaCons ":>"
('InfixI 'LeftAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Seq) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in containers-0.7 · Data.Sequence.Internaltype Rep1 Tree = D1 ('MetaData "Tree"
"Data.Tree"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "Node"
'PrefixI 'True) (S1 ('MetaSel ('Just "rootLabel"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel ('Just "subForest"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 Tree)))Defined in containers-0.7 · Data.Treetype Rep1 NonEmpty = D1 ('MetaData "NonEmpty"
"GHC.Internal.Base"
"ghc-internal"
'False) (C1 ('MetaCons ":|"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 Identity = D1 ('MetaData "Identity"
"GHC.Internal.Data.Functor.Identity"
"ghc-internal"
'True) (C1 ('MetaCons "Identity"
'PrefixI 'True) (S1 ('MetaSel ('Just "runIdentity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.Identitytype Rep1 First = D1 ('MetaData "First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons "First"
'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoidtype Rep1 Last = D1 ('MetaData "Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons "Last"
'PrefixI 'True) (S1 ('MetaSel ('Just "getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoidtype Rep1 Down = D1 ('MetaData "Down"
"GHC.Internal.Data.Ord"
"ghc-internal"
'True) (C1 ('MetaCons "Down"
'PrefixI 'True) (S1 ('MetaSel ('Just "getDown"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 Dual = D1 ('MetaData "Dual"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons "Dual"
'PrefixI 'True) (S1 ('MetaSel ('Just "getDual"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep1 Product = D1 ('MetaData "Product"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons "Product"
'PrefixI 'True) (S1 ('MetaSel ('Just "getProduct"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep1 Sum = D1 ('MetaData "Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons "Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just "getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep1 ZipList = D1 ('MetaData "ZipList"
"GHC.Internal.Functor.ZipList"
"ghc-internal"
'True) (C1 ('MetaCons "ZipList"
'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListtype Rep1 Par1 = D1 ('MetaData "Par1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons "Par1"
'PrefixI 'True) (S1 ('MetaSel ('Just "unPar1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 Maybe = D1 ('MetaData "Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons "Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons "Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 Solo = D1 ('MetaData "Solo"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "MkSolo"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (WrappedArrow a b) = D1 ('MetaData "WrappedArrow"
"Control.Applicative"
"base"
'True) (C1 ('MetaCons "WrapArrow"
'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (a b))))Defined in base-4.20.2.0 · Control.Applicativetype Rep1 (WrappedMonad m) = D1 ('MetaData "WrappedMonad"
"Control.Applicative"
"base"
'True) (C1 ('MetaCons "WrapMonad"
'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 m)))Defined in base-4.20.2.0 · Control.Applicativetype Rep1 (Compose f g) = D1 ('MetaData "Compose"
"Data.Functor.Compose"
"base"
'True) (C1 ('MetaCons "Compose"
'PrefixI 'True) (S1 ('MetaSel ('Just "getCompose"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 g)))Defined in base-4.20.2.0 · Data.Functor.Composetype Rep1 (Arg a) = D1 ('MetaData "Arg"
"Data.Semigroup"
"base"
'False) (C1 ('MetaCons "Arg"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 (Biap bi a) = D1 ('MetaData "Biap"
"Data.Bifunctor.Biap"
"bifunctors-5.6.2-CVCaN6VuvqC3GgUKVKmvdT"
'True) (C1 ('MetaCons "Biap"
'PrefixI 'True) (S1 ('MetaSel ('Just "getBiap"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (bi a))))Defined in bifunctors-5.6.2 · Data.Bifunctor.Biaptype Rep1 (Biff p f g a) = D1 ('MetaData "Biff"
"Data.Bifunctor.Biff"
"bifunctors-5.6.2-CVCaN6VuvqC3GgUKVKmvdT"
'True) (C1 ('MetaCons "Biff"
'PrefixI 'True) (S1 ('MetaSel ('Just "runBiff"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (p (f a) :.: Rec1 g)))Defined in bifunctors-5.6.2 · Data.Bifunctor.Bifftype Rep1 (Tannen f p a) = D1 ('MetaData "Tannen"
"Data.Bifunctor.Tannen"
"bifunctors-5.6.2-CVCaN6VuvqC3GgUKVKmvdT"
'True) (C1 ('MetaCons "Tannen"
'PrefixI 'True) (S1 ('MetaSel ('Just "runTannen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 (p a))))Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannentype Rep1 (Cofree f) = D1 ('MetaData "Cofree"
"Control.Comonad.Cofree"
"free-5.2-rp39PEumRD48nWoQbdqXD"
'False) (C1 ('MetaCons ":<"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 (Cofree f))))Defined in free-5.2 · Control.Comonad.Cofreetype Rep1 (CofreeF f a) = D1 ('MetaData "CofreeF"
"Control.Comonad.Trans.Cofree"
"free-5.2-rp39PEumRD48nWoQbdqXD"
'False) (C1 ('MetaCons ":<"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))Defined in free-5.2 · Control.Comonad.Trans.Cofreetype Rep1 (Free f) = D1 ('MetaData "Free"
"Control.Monad.Free"
"free-5.2-rp39PEumRD48nWoQbdqXD"
'False) (C1 ('MetaCons "Pure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "Free"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 (Free f))))Defined in free-5.2 · Control.Monad.Freetype Rep1 (Free f) = D1 ('MetaData "Free"
"Control.Monad.Free.Ap"
"free-5.2-rp39PEumRD48nWoQbdqXD"
'False) (C1 ('MetaCons "Pure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "Free"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 (Free f))))Defined in free-5.2 · Control.Monad.Free.Aptype Rep1 (FreeF f a) = D1 ('MetaData "FreeF"
"Control.Monad.Trans.Free"
"free-5.2-rp39PEumRD48nWoQbdqXD"
'False) (C1 ('MetaCons "Pure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "Free"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))Defined in free-5.2 · Control.Monad.Trans.Freetype Rep1 (FreeF f a) = D1 ('MetaData "FreeF"
"Control.Monad.Trans.Free.Ap"
"free-5.2-rp39PEumRD48nWoQbdqXD"
'False) (C1 ('MetaCons "Pure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "Free"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))Defined in free-5.2 · Control.Monad.Trans.Free.Aptype Rep1 (Kleisli m a) = D1 ('MetaData "Kleisli"
"GHC.Internal.Control.Arrow"
"ghc-internal"
'True) (C1 ('MetaCons "Kleisli"
'PrefixI 'True) (S1 ('MetaSel ('Just "runKleisli"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (FUN 'Many a :.: Rec1 m)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Arrowtype Rep1 (Either a) = D1 ('MetaData "Either"
"GHC.Internal.Data.Either"
"ghc-internal"
'False) (C1 ('MetaCons "Left"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "Right"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple10 a b c d e f g h i) = D1 ('MetaData "Tuple10"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple11 a b c d e f g h i j) = D1 ('MetaData "Tuple11"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple12 a b c d e f g h i j k) = D1 ('MetaData "Tuple12"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple13 a b c d e f g h i j k l) = D1 ('MetaData "Tuple13"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple14 a b c d e f g h i j k l m) = D1 ('MetaData "Tuple14"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple15 a b c d e f g h i j k l m n) = D1 ('MetaData "Tuple15"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))) :*: (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 n) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple2 a) = D1 ('MetaData "Tuple2"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,)"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple3 a b) = D1 ('MetaData "Tuple3"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,)"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple4 a b c) = D1 ('MetaData "Tuple4"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple5 a b c d) = D1 ('MetaData "Tuple5"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple6 a b c d e) = D1 ('MetaData "Tuple6"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple7 a b c d e f) = D1 ('MetaData "Tuple7"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple8 a b c d e f g) = D1 ('MetaData "Tuple8"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tuple9 a b c d e f g h) = D1 ('MetaData "Tuple9"
"GHC.Tuple"
"ghc-prim"
'False) (C1 ('MetaCons "(,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Tagged s) = D1 ('MetaData "Tagged"
"Data.Tagged"
"tagged-0.8.9-5pdNZ55IadSDEGRco0szGK"
'True) (C1 ('MetaCons "Tagged"
'PrefixI 'True) (S1 ('MetaSel ('Just "unTagged"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in tagged-0.8.9 · Data.Taggedtype Rep1 (Lift f) = D1 ('MetaData "Lift"
"Control.Applicative.Lift"
"transformers-0.6.1.1-a11a"
'False) (C1 ('MetaCons "Pure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "Other"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))Defined in transformers-0.6.1.1 · Control.Applicative.Lifttype Rep1 (ExceptT e m) = D1 ('MetaData "ExceptT"
"Control.Monad.Trans.Except"
"transformers-0.6.1.1-a11a"
'True) (C1 ('MetaCons "ExceptT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (m :.: Rec1 (Either e))))Defined in transformers-0.6.1.1 · Control.Monad.Trans.Excepttype Rep1 (MaybeT m) = D1 ('MetaData "MaybeT"
"Control.Monad.Trans.Maybe"
"transformers-0.6.1.1-a11a"
'True) (C1 ('MetaCons "MaybeT"
'PrefixI 'True) (S1 ('MetaSel ('Just "runMaybeT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (m :.: Rec1 Maybe)))Defined in transformers-0.6.1.1 · Control.Monad.Trans.Maybetype Rep1 (ReaderT r m) = D1 ('MetaData "ReaderT"
"Control.Monad.Trans.Reader"
"transformers-0.6.1.1-a11a"
'True) (C1 ('MetaCons "ReaderT"
'PrefixI 'True) (S1 ('MetaSel ('Just "runReaderT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (FUN 'Many r :.: Rec1 m)))Defined in transformers-0.6.1.1 · Control.Monad.Trans.Readertype Rep1 (f :.: g) = D1 ('MetaData ":.:"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons "Comp1"
'PrefixI 'True) (S1 ('MetaSel ('Just "unComp1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 g)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 [] = D1 ('MetaData "List"
"GHC.Types"
"ghc-prim"
'False) (C1 ('MetaCons "[]"
'PrefixI 'False) U1 :+: C1 ('MetaCons ":"
('InfixI 'RightAssociative 5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype PrimState (ContT r m) = PrimState mDefined in primitive-0.9.1.0 · Control.Monad.Primitivetype PrimState (IdentityT m) = PrimState mDefined in primitive-0.9.1.0 · Control.Monad.Primitivetype Swizzle U1 = U1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle V1 = V1Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle (K1 i c) = K1 i cDefined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle (M1 i c f) = M1 i c (Swizzle f)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle (Rec1 f) = Rec1 fDefined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle (f :*: g) = Swizzle f ::*: Swizzle gDefined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle (f :+: g) = Swizzle f ::+: Swizzle gDefined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Swizzle (f :.: g) = f :.: Swizzle gDefined in contravariant-1.5.5 · Data.Functor.Contravariant.Generictype Corep Tagged = ProxyDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Corep (Cokleisli w) = wDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Corep (Procompose p q) = Compose (Corep p) (Corep q)Defined in profunctors-5.6.3 · Data.Profunctor.Compositiontype Corep (Costar f) = fDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep (Procompose p q) = Compose (Rep q) (Rep p)Defined in profunctors-5.6.3 · Data.Profunctor.Compositiontype Rep (Forget r) = Const rDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep (Star f) = fDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep Proxy = VoidDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep U1 = VoidDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (Compose f g) = (Rep f, Rep g)Defined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (Product f g) = Either (Rep f) (Rep g)Defined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (M1 i c f) = Rep fDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (Rec1 f) = Rep fDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (Tagged t) = ()Defined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (Backwards f) = Rep fDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (IdentityT m) = Rep mDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (Reverse f) = Rep fDefined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (f :*: g) = Either (Rep f) (Rep g)Defined in adjunctions-4.4.3 · Data.Functor.Reptype Rep (f :.: g) = (Rep f, Rep g)Defined in adjunctions-4.4.3 · Data.Functor.Reptype Rep Proxy = ()Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Reptype Rep U1 = ()Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Reptype Rep (Product f g) = (Rep f, Rep g)Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Reptype Rep (f :*: g) = (Rep f, Rep g)Defined in adjunctions-4.4.3 · Data.Functor.Contravariant.Reptype GRep' (M1 i c f) = GRep' fDefined in adjunctions-4.4.3 · Data.Functor.Reptype GRep' (Rec1 f) = WrappedRep fDefined in adjunctions-4.4.3 · Data.Functor.Reptype GRep' (f :*: g) = Either (GRep' f) (GRep' g)Defined in adjunctions-4.4.3 · Data.Functor.Reptype GRep' (f :.: g) = (WrappedRep f, GRep' g)Defined in adjunctions-4.4.3 · Data.Functor.Reptype Key Proxy = VoidDefined in keys-3.12.3 · Data.Keytype Key U1 = VoidDefined in keys-3.12.3 · Data.Keytype Key V1 = VoidDefined in keys-3.12.3 · Data.Keytype Key (Compose f g) = (Key f, Key g)Defined in keys-3.12.3 · Data.Keytype Key (Product f g) = Either (Key f) (Key g)Defined in keys-3.12.3 · Data.Keytype Key (Sum f g) = Either (Key f) (Key g)Defined in keys-3.12.3 · Data.Keytype Key (Const e) = VoidDefined in keys-3.12.3 · Data.Keytype Key (K1 i c) = VoidDefined in keys-3.12.3 · Data.Keytype Key (M1 i c f) = Key fDefined in keys-3.12.3 · Data.Keytype Key (Rec1 f) = Key fDefined in keys-3.12.3 · Data.Keytype Key (Tagged a) = ()Defined in keys-3.12.3 · Data.Keytype Key (IdentityT m) = Key mDefined in keys-3.12.3 · Data.Keytype Key (Constant e) = VoidDefined in keys-3.12.3 · Data.Keytype Key (f :*: g) = Either (Key f) (Key g)Defined in keys-3.12.3 · Data.Keytype Key (f :+: g) = Either (Key f) (Key g)Defined in keys-3.12.3 · Data.Keytype Key (g :.: f) = (Key g, Key f)Defined in keys-3.12.3 · Data.KeyPromote a function to a monad. This is equivalent to fmap but specialised to Monads.
Eq TyConDefined in ghc-prim-0.12.0 · GHC.ClassesOrd TyConDefined in ghc-prim-0.12.0 · GHC.ClassesShow TyConDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowNFData TyConDefined in deepseq-1.5.0.0 · Control.DeepSeqNOTE: Prior to deepseq-1.4.4.0 this instance was only defined for base-4.8.0.0 and later.
Binary TyConDefined in binary-0.8.9.3 · Data.Binary.ClassMkIntBox aData type Dict provides a simple way to wrap up a (lifted)
constraint as a type
a => MkDictBoxDouble-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE double-precision type.
Enum DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanfromEnum just truncates its argument, beware of all sorts of overflows.
List generators have extremely peculiar behavior, mandated by Haskell Report 2010:
[0..1.5][0.0,1.0,2.0]
Eq DoubleDefined in ghc-prim-0.12.0 · GHC.ClassesFloating DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.FloatFractional DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.
0 == (-0 :: Double)Truerecip 0 == recip (-0 :: Double)Falsemap (/ 0) [-1, 0, 1][-Infinity,NaN,Infinity]map (* 0) $ map (/ 0) [-1, 0, 1][NaN,NaN,NaN]
Data DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero. Neither addition nor multiplication are associative or distributive:
(0.1 + 0.1) + 0.4 == 0.1 + (0.1 + 0.4)False(0.1 + 0.2) * 0.3 == 0.1 * 0.3 + 0.2 * 0.3False(0.1 * 0.1) * 0.3 == 0.1 * (0.1 * 0.3)False
Ord DoubleDefined in ghc-prim-0.12.0 · GHC.ClassesIEEE 754 Double-precision type includes not only numbers, but also
positive and negative infinities and a special element called NaN
(which can be quiet or signal).
IEEE 754-2008, section 5.11 requires that if at least one of arguments of
<=, <, >, >= is NaN then the result of the comparison is False,
and instance Ord Double complies with this requirement. This violates
the reflexivity: both NaN <= NaN and NaN >= NaN are False.
IEEE 754-2008, section 5.10 defines totalOrder predicate. Unfortunately,
compare on Doubles violates the IEEE standard and does not define a total order.
More specifically, both compare NaN x and compare x NaN always return GT.
Thus, users must be extremely cautious when using instance Ord Double.
For instance, one should avoid ordered containers with keys represented by Double,
because data loss and corruption may happen. An IEEE-compliant compare is available
in fp-ieee package as TotallyOrdered newtype.
Moving further, the behaviour of min and max with regards to NaN is
also non-compliant. IEEE 754-2008, section 5.3.1 defines that quiet NaN
should be treated as a missing data by minNum and maxNum functions,
for example, minNum(NaN, 1) = minNum(1, NaN) = 1. Some languages such as Java
deviate from the standard implementing minNum(NaN, 1) = minNum(1, NaN) = NaN.
However, min / max in base are even worse: min NaN 1 is 1, but min 1 NaN
is NaN.
IEEE 754-2008 compliant min / max can be found in ieee754 package under
minNum / maxNum names. Implementations compliant with
minimumNumber / maximumNumber from a newer
IEEE 754-2019,
section 9.6 are available from fp-ieee package.
Read DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadReal DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanBeware that toRational generates garbage for non-finite arguments:
toRational (1/0)179769313 (and 300 more digits...) % 1toRational (0/0)269653970 (and 300 more digits...) % 1
RealFloat DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.FloatRealFrac DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanBeware that results for non-finite arguments are garbage:
[ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0] ] :: [Int][0,0,0,0,0,0,0,0,0]map properFraction [-1/0, 0/0, 1/0] :: [(Int, Double)][(0,0.0),(0,0.0),(0,0.0)]
and get even more non-sensical if you ask for Integer instead of Int.
Show DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Float · orphanStorable DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.StorablePrintfArg DoubleDefined in base-4.20.2.0 · Text.PrintfNFData DoubleDefined in deepseq-1.5.0.0 · Control.DeepSeqPretty DoubleDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty DoubleDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassRandom DoubleDefined in random-1.2.1.3 · System.RandomNote - random produces values in the closed range [0,1].
UniformRange DoubleDefined in random-1.2.1.3 · System.Random.InternalBinary DoubleDefined in binary-0.8.9.3 · Data.Binary.ClassUses non-IEEE754 encoding. Does not round-trip NaN.
Hashable DoubleDefined in hashable-1.4.7.0 · Data.Hashable.ClassNote: prior to hashable-1.3.0.0, hash 0.0 /= hash (-0.0)
The hash of NaN is not well defined.
Prim DoubleDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseDefault DoubleDefined in data-default-0.8.0.1 · Data.Default.InternalLift DoubleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIArray UArray DoubleDefined in array-0.5.8.0 · Data.Array.BaseVector Vector DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMVector MVector DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Double IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Double)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsFoldable UDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable UDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Double (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Double)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsShow (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsGeneric (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (URec Double p) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just "uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (URec Double) = D1 ('MetaData "URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons "UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just "uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata URec DoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsUsed for marking occurrences of Double#
data MVector s DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEnum OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.EnumEq OrderingDefined in ghc-prim-0.12.0 · GHC.ClassesData OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd OrderingDefined in ghc-prim-0.12.0 · GHC.ClassesRead OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowIx OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.IxGeneric OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonoid OrderingDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseNFData OrderingDefined in deepseq-1.5.0.0 · Control.DeepSeqPretty OrderingDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty OrderingDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassFinite OrderingDefined in random-1.2.1.3 · System.Random.GFiniteBinary OrderingDefined in binary-0.8.9.3 · Data.Binary.ClassHashable OrderingDefined in hashable-1.4.7.0 · Data.Hashable.ClassDefault OrderingDefined in data-default-0.8.0.1 · Data.Default.Internaltype Rep Ordering = D1 ('MetaData "Ordering"
"GHC.Types"
"ghc-prim"
'False) (C1 ('MetaCons "LT"
'PrefixI 'False) U1 :+: (C1 ('MetaCons "EQ"
'PrefixI 'False) U1 :+: C1 ('MetaCons "GT"
'PrefixI 'False) U1))Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsLifted, heterogeneous equality. By lifted, we mean that it
can be bogus (deferred type error). By heterogeneous, the two
types a and b might have different kinds. Because ~~ can
appear unexpectedly in error messages to users who do not care
about the difference between heterogeneous equality ~~ and
homogeneous equality ~, this is printed as ~ unless
-fprint-equality-relations is set.
In 0.7.0, the fixity was set to infix 4 to match the fixity of :~~:.
Lifted, homogeneous equality. By lifted, we mean that it
can be bogus (deferred type error). By homogeneous, the two
types a and b must have the same kinds.
Coercible is a two-parameter class that has instances for types a and b if
the compiler can infer that they have the same representation. This class
does not have regular instances; instead they are created on-the-fly during
type-checking. Trying to manually declare an instance of Coercible
is an error.
Nevertheless one can pretend that the following three kinds of instances exist. First, as a trivial base-case:
instance Coercible a aFurthermore, for every type constructor there is
an instance that allows to coerce under the type constructor. For
example, let D be a prototypical type constructor (data or
newtype) with three type arguments, which have roles nominal,
representational resp. phantom. Then there is an instance of
the form
instance Coercible b b' => Coercible (D a b c) (D a b' c')Note that the nominal type arguments are equal, the
representational type arguments can differ, but need to have a
Coercible instance themself, and the phantom type arguments can be
changed arbitrarily.
The third kind of instance exists for every newtype NT = MkNT T and
comes in two variants, namely
instance Coercible a T => Coercible a NTinstance Coercible T b => Coercible NT bThis instance is only usable if the constructor MkNT is in scope.
If, as a library author of a type constructor like Set a, you
want to prevent a user of your module to write
coerce :: Set T -> Set NT,
you need to set the role of Set's type parameter to nominal,
by writing
type role Set nominalFor more details about this feature, please refer to Safe Coercions by Joachim Breitner, Richard A. Eisenberg, Simon Peyton Jones and Stephanie Weirich.
(Kind) This is the kind of type-level symbols.
SingKind SymbolDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsTestCoercion SSymbolDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsTestEquality SSymbolDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsKnownSymbol a => SingI aDefined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Compare a b = CmpSymbol a bDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.Ordtype DemoteRep Symbol = StringDefined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata SingSSym :: KnownSymbol s => R:SingSymbols sGHC maintains a property that the kind of all inhabited types (as distinct from type constructors or type-level data) tells us the runtime representation of values of that type. This datatype encodes the choice of runtime value. Note that TYPE is parameterised by RuntimeRep; this is precisely what we mean by the fact that a type's kind encodes the runtime representation.
For boxed values (that is, values that are represented by a pointer), a further distinction is made, between lifted types (that contain ⊥), and unlifted ones (that don't).
VecRep VecCount VecElema SIMD vector type
TupleRep [RuntimeRep]An unboxed tuple of the given reps
SumRep [RuntimeRep]An unboxed sum of the given reps
BoxedRep Levityboxed; represented by a pointer
IntRepsigned, word-sized value
Int8Repsigned, 8-bit value
Int16Repsigned, 16-bit value
Int32Repsigned, 32-bit value
Int64Repsigned, 64-bit value
WordRepunsigned, word-sized value
Word8Repunsigned, 8-bit value
Word16Repunsigned, 16-bit value
Word32Repunsigned, 32-bit value
Word64Repunsigned, 64-bit value
AddrRepA pointer, but not to a Haskell value
FloatRepa 32-bit floating point number
DoubleRepa 64-bit floating point number
Show RuntimeRepDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowBinary RuntimeRepDefined in binary-0.8.9.3 · Data.Binary.ClassLift a => Lift (# a #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b) => Lift (# a, b #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b) => Lift (# a | b #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c) => Lift (# a, b, c #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c) => Lift (# a | b | c #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d) => Lift (# a, b, c, d #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d) => Lift (# a | b | c | d #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (# a, b, c, d, e #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (# a | b | c | d | e #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (# a, b, c, d, e, f #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (# a | b | c | d | e | f #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (# a, b, c, d, e, f, g #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (# a | b | c | d | e | f | g #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxElement of a SIMD vector type
The syntax ?x :: a is desugared into IP "x" a
IP is declared very early, so that libraries can take
advantage of the implicit-call-stack feature
ip :: aThe type constructor Any is type to which you can unsafely coerce any
lifted type, and back. More concretely, for a lifted type t and
value x :: t, unsafeCoerce (unsafeCoerce x :: Any) :: t is equivalent
to x.
A variant of error that does not produce a stack trace.
SPEC is used by GHC in the SpecConstr pass in order to inform
the compiler when to be particularly aggressive. In particular, it
tells GHC to specialize regardless of size or the number of
specializations. However, not all loops fall into this category.
Libraries can specify this by using SPEC data type to inform which loops should be aggressively specialized. For example, instead of
loop x where loop arg = ...write
loop SPEC x where loop !_ arg = ...There is no semantic difference between SPEC and SPEC2,
we just need a type with two constructors lest it is optimised away
before SpecConstr.
This type is reexported from GHC.Exts since GHC 9.0 and base-4.15.
For compatibility with earlier releases import it from GHC.Types
in ghc-prim package.
Show TypeLitSortDefined in ghc-internal-9.1003.0 · GHC.Internal.ShowBinary TypeLitSortDefined in binary-0.8.9.3 · Data.Binary.ClassThe representation produced by GHC for conjuring up the kind of a TypeRep.
The kind of the empty unboxed tuple type (# #)
The runtime representation of a zero-width tuple, represented by no bits at all
Lift (# #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxThe runtime representation of unlifted types.
The runtime representation of lifted types.
Lift ByteArrayDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeLift ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalLift ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalLift IntSetDefined in containers-0.7 · Data.IntSet.InternalLift IntegerDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift NaturalDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift VoidDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Int16Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Int32Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Int64Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Int8Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Word16Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Word32Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Word64Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift Word8Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift BoolDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift CharDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift DoubleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift FloatDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift IntDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift WordDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift OsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesLift PosixStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesLift WindowsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesLift ScientificDefined in scientific-0.3.8.0 · Data.ScientificLift TextDefined in text-2.1.3 · Data.Text · orphanLift TextDefined in text-2.1.3 · Data.Text.Lazy · orphanLift CalendarDiffDaysDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift DayDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift MonthDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift QuarterOfYearDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift DayOfWeekDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift FirstWeekTypeDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift DiffTimeDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift NominalDiffTimeDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift UTCTimeDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift UniversalTimeDefined in time-compat-1.9.8 · Data.Time.Orphans · orphanLift UUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalLift ()Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxIntegral a => Lift (Ratio a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayLift a => Lift (IntMap a)Defined in containers-0.7 · Data.IntMap.InternalLift a => Lift (Digit a)Defined in containers-0.7 · Data.Sequence.InternalLift a => Lift (FingerTree a)Defined in containers-0.7 · Data.Sequence.InternalLift a => Lift (Node a)Defined in containers-0.7 · Data.Sequence.InternalLift a => Lift (Seq a)Defined in containers-0.7 · Data.Sequence.InternalLift a => Lift (ViewL a)Defined in containers-0.7 · Data.Sequence.InternalLift a => Lift (ViewR a)Defined in containers-0.7 · Data.Sequence.InternalLift a => Lift (Set a)Defined in containers-0.7 · Data.Set.InternalLift a => Lift (Tree a)Defined in containers-0.7 · Data.TreeLift a => Lift (NonEmpty a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift a => Lift (Maybe a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift a => Lift (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayLift a => Lift (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayLift a => Lift (Array a)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.ArrayLift a => Lift (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalLift a => Lift [a]Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift vertex => Lift (SCC vertex)Defined in containers-0.7 · Data.GraphLift (Fixed a)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b) => Lift (Either a b)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b) => Lift (a, b)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift k, Lift a) => Lift (Map k a)Defined in containers-0.7 · Data.Map.Internal(Lift k, Lift v) => Lift (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(Lift k, Lift v) => Lift (Leaf k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalCategory (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.CategorySemigroupoid (->)Defined in semigroupoids-6.0.1 · Data.SemigroupoidOb (->) aDefined in semigroupoids-6.0.1 · Data.Semigroupoid.Ob(Lift a, Lift b, Lift c) => Lift (a, b, c)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxMonadReader r ((->) r)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassFunctorWithIndex r ((->) r)Defined in indexed-traversable-0.1.4 · WithIndexMonoid m => ComonadTraced m ((->) m)Defined in comonad-5.0.9 · Control.Comonad.Traced.Class(Lift a, Lift b, Lift c, Lift d) => Lift (a, b, c, d)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (a, b, c, d, e)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (a, b, c, d, e, f)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (a, b, c, d, e, f, g)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxLift a => Lift (# a #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxAdjunction (Tuple2 e) ((->) e)Defined in adjunctions-4.4.3 · Data.Functor.Adjunction(Lift a, Lift b) => Lift (# a, b #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b) => Lift (# a | b #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c) => Lift (# a, b, c #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c) => Lift (# a | b | c #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d) => Lift (# a, b, c, d #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d) => Lift (# a | b | c | d #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (# a, b, c, d, e #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (# a | b | c | d | e #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (# a, b, c, d, e, f #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (# a | b | c | d | e | f #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (# a, b, c, d, e, f, g #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.Syntax(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (# a | b | c | d | e | f | g #)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxArrow (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowArrowApply (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowArrowChoice (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowArrowLoop (->)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.ArrowMonadTrans CodensityDefined in kan-extensions-5.2.7 · Control.Monad.CodensityChoice (->)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceCochoice (->)Defined in profunctors-5.6.3 · Data.Profunctor.ChoiceClosed (->)Defined in profunctors-5.6.3 · Data.Profunctor.ClosedMapping (->)Defined in profunctors-5.6.3 · Data.Profunctor.MappingCostrong (->)Defined in profunctors-5.6.3 · Data.Profunctor.StrongStrong (->)Defined in profunctors-5.6.3 · Data.Profunctor.StrongProfunctor (->)Defined in profunctors-5.6.3 · Data.Profunctor.UnsafeTraversing (->)Defined in profunctors-5.6.3 · Data.Profunctor.TraversingCorepresentable (->)Defined in profunctors-5.6.3 · Data.Profunctor.RepRepresentable (->)Defined in profunctors-5.6.3 · Data.Profunctor.RepInvariant2 (->)Defined in invariant-0.6.4 · Data.Functor.InvariantCosieve (->) IdentityDefined in profunctors-5.6.3 · Data.Profunctor.SieveSieve (->) IdentityDefined in profunctors-5.6.3 · Data.Profunctor.SieveMonad ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseDistributive ((->) e)Defined in distributive-0.6.2.1 · Data.DistributiveMonoid m => Comonad ((->) m)Defined in comonad-5.0.9 · Control.ComonadMonoid m => ComonadApply ((->) m)Defined in comonad-5.0.9 · Control.ComonadApply ((->) m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind ((->) m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassSemigroup m => Extend ((->) m)Defined in semigroupoids-6.0.1 · Data.Functor.ExtendRepresentable ((->) e)Defined in adjunctions-4.4.3 · Data.Functor.RepInvariant ((->) a)Defined in invariant-0.6.4 · Data.Functor.InvariantSelective ((->) a)Defined in selective-0.7.0.1 · Control.SelectiveIndexable ((->) a)Defined in keys-3.12.3 · Data.KeyKeyed ((->) a)Defined in keys-3.12.3 · Data.KeyLookup ((->) a)Defined in keys-3.12.3 · Data.KeyZip ((->) a)Defined in keys-3.12.3 · Data.KeyZipWithKey ((->) a)Defined in keys-3.12.3 · Data.KeyDefault m => Copointed ((->) m)Defined in pointed-5.0.4 · Data.CopointedPointed ((->) e)Defined in pointed-5.0.4 · Data.PointedMonadBase ((->) r) ((->) r)Defined in transformers-base-0.4.6 · Control.Monad.Basetype Rep1 First = D1 ('MetaData "First"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "First"
'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 Last = D1 ('MetaData "Last"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "Last"
'PrefixI 'True) (S1 ('MetaSel ('Just "getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 Max = D1 ('MetaData "Max"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "Max"
'PrefixI 'True) (S1 ('MetaSel ('Just "getMax"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 Min = D1 ('MetaData "Min"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "Min"
'PrefixI 'True) (S1 ('MetaSel ('Just "getMin"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 WrappedMonoid = D1 ('MetaData "WrappedMonoid"
"Data.Semigroup"
"base"
'True) (C1 ('MetaCons "WrapMonoid"
'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonoid"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in base-4.20.2.0 · Data.Semigrouptype Rep1 First = D1 ('MetaData "First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons "First"
'PrefixI 'True) (S1 ('MetaSel ('Just "getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoidtype Rep1 Last = D1 ('MetaData "Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons "Last"
'PrefixI 'True) (S1 ('MetaSel ('Just "getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Monoidtype Rep1 Dual = D1 ('MetaData "Dual"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons "Dual"
'PrefixI 'True) (S1 ('MetaSel ('Just "getDual"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep1 Product = D1 ('MetaData "Product"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons "Product"
'PrefixI 'True) (S1 ('MetaSel ('Just "getProduct"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep1 Sum = D1 ('MetaData "Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons "Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just "getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep1 Par1 = D1 ('MetaData "Par1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons "Par1"
'PrefixI 'True) (S1 ('MetaSel ('Just "unPar1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep1 (Compose f g) = D1 ('MetaData "Compose"
"Data.Functor.Compose"
"base"
'True) (C1 ('MetaCons "Compose"
'PrefixI 'True) (S1 ('MetaSel ('Just "getCompose"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 g)))Defined in base-4.20.2.0 · Data.Functor.Composetype Rep1 (f :.: g) = D1 ('MetaData ":.:"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons "Comp1"
'PrefixI 'True) (S1 ('MetaSel ('Just "unComp1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 g)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Corep (->) = IdentityDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep (->) = IdentityDefined in profunctors-5.6.3 · Data.Profunctor.Reptype Rep ((->) e) = eDefined in adjunctions-4.4.3 · Data.Functor.Reptype Key ((->) a) = aDefined in keys-3.12.3 · Data.KeyThe kind of boxed, unlifted values, for example Array# or a user-defined
unlifted data type, using -XUnliftedDataTypes.
The kind of lifted constraints
is the function application operator.($)
Applying to a function ($)f and an argument x gives the same result as applying f to x directly. The definition is akin to this:
($) :: (a -> b) -> a -> b
($) f x = f x
This is id specialized from a -> a to (a -> b) -> (a -> b) which by the associativity of (->)
is the same as (a -> b) -> a -> b.
On the face of it, this may appear pointless! But it's actually one of the most useful and important operators in Haskell.
The order of operations is very different between ($) and normal function application. Normal function application has precedence 10 - higher than any operator - and associates to the left. So these two definitions are equivalent:
expr = min 5 1 + 5
expr = ((min 5) 1) + 5
($) has precedence 0 (the lowest) and associates to the right, so these are equivalent:
expr = min 5 $ 1 + 5
expr = (min 5) (1 + 5)
A common use cases of ($) is to avoid parentheses in complex expressions.
For example, instead of using nested parentheses in the following Haskell function:
-- | Sum numbers in a string: strSum "100 5 -7" == 98
strSum :: String -> Int
strSum s = sum (mapMaybe readMaybe (words s))
we can deploy the function application operator:
-- | Sum numbers in a string: strSum "100 5 -7" == 98
strSum :: String -> Int
strSum s = sum $ mapMaybe readMaybe $ words s
($) is also used as a section (a partially applied operator), in order to indicate that we wish to apply some yet-unspecified function to a given value. For example, to apply the argument 5 to a list of functions:
applyFive :: [Int]
applyFive = map ($ 5) [(+1), (2^)]
>>> [6, 32]
($) is fully representation-polymorphic. This allows it to also be used with arguments of unlifted and even unboxed kinds, such as unboxed integers:
fastMod :: Int -> Int -> Int
fastMod (I# x) (I# m) = I# $ remInt# x m
If the first argument evaluates to True, then the result is the second argument. Otherwise an AssertionFailed exception is raised, containing a String with the source file and line number of the call to assert.
Assertions can normally be turned on or off with a compiler flag
(for GHC, assertions are normally on unless optimisation is turned on
with -O or the -fignore-asserts
option is given). When assertions are turned off, the first
argument to assert is ignored, and the second argument is
returned as the result.
This String equality predicate is used when desugaring pattern-matches against strings.
(++) appends two lists, i.e.,
[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
[x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]If the first list is not finite, the result is the first list.
This function takes linear time in the number of elements of the
first list. Thus it is better to associate repeated
applications of (++) to the right (which is the default behaviour):
xs ++ (ys ++ zs) or simply xs ++ ys ++ zs, but not (xs ++ ys) ++ zs.
For the same reason GHC.Internal.Data.List.concat = GHC.Internal.Data.List.foldr (++) []
has linear performance, while GHC.Internal.Data.List.foldl (++) [] is prone
to quadratic slowdown
[1, 2, 3] ++ [4, 5, 6][1,2,3,4,5,6]
[] ++ [1, 2, 3][1,2,3]
[3, 2, 1] ++ [][3,2,1]
\mathcal{O}(n). map f xs is the list obtained by applying f to
each element of xs, i.e.,
map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
map f [x1, x2, ...] == [f x1, f x2, ...]this means that map id == id
map (+1) [1, 2, 3][2,3,4]
map id [1, 2, 3][1,2,3]
map (\n -> 3 * n + 1) [1, 2, 3][4,7,10]
Used for compiler-generated error message; encoding saves bytes of string junk.
error stops execution and displays an error message.
Strict (call-by-value) application operator. It takes a function and an argument, evaluates the argument to weak head normal form (WHNF), then calls the function with that value.
Same as >>=, but with the arguments interchanged.
as >>= f == f =<< asPromote a function to a monad, scanning the monadic arguments from left to right (cf. liftM2).
Promote a function to a monad, scanning the monadic arguments from left to right (cf. liftM2).
Promote a function to a monad, scanning the monadic arguments from left to right (cf. liftM2).
Conditional execution of Applicative expressions. For example,
when debug (putStrLn "Debugging")will output the string Debugging if the Boolean value debug
is True, and otherwise do nothing.
putStr "pi:" >> when False (print 3.14159)pi:
Since Void values logically don't exist, this witnesses the logical reasoning tool of "ex falso quodlibet".
let x :: Either Void Int; x = Right 5:{case x of Right r -> r Left l -> absurd l:}5
flip f takes its (first) two arguments in the reverse order of f.
flip f x y = f y xflip . flip = idflip (++) "hello" "world""worldhello"
let (.>) = flip (.) in (+1) .> show $ 5"6"
Returns the tag of a constructor application; this function was once used by the deriving code for Eq, Ord and Enum.
Shift the argument left by the specified number of bits (which must be non-negative).
Shift the argument right (signed) by the specified number of bits
(which must be non-negative).
The RA means "right, arithmetic" (as opposed to RL for logical)
Shift the argument right (unsigned) by the specified number of bits
(which must be non-negative).
The RL means "right, logical" (as opposed to RA for arithmetic)
The Prelude.fromEnum method restricted to the type Char.
Shift the argument left by the specified number of bits (which must be non-negative).
Shift the argument right by the specified number of bits
(which must be non-negative).
The RL means "right, logical" (as opposed to RA for arithmetic)
(although an arithmetic right shift wouldn't make sense for Word#)
This function is used to implement branchless shifts. If the number of bits to shift is greater than or equal to the type size in bits, then the shift must return 0. Instead of doing a test, we use a mask obtained via this function which is branchless too.
shift_mask m b | b < m = 0xFF..FF | otherwise = 0
until p f yields the result of applying f until p holds.
Boolean "and", lazy in the second argument
Boolean "not"
Boolean "or", lazy in the second argument
Retrieves the allocation counter for the current thread.
Compare two stable names for equality.
Compare the underlying pointers of two values for equality.
Returns 1 if the pointers are equal and 0 otherwise.
The two values must be of the same type, of kind Type.
See also reallyUnsafePtrEquality#, which doesn't have
such restrictions.
Compare the underlying pointers of two arrays.
Compare the pointers of two byte arrays.
Compare the underlying pointers of two IOPort#s.
Compare the underlying pointers of two MVar#s.
Compare the underlying pointers of two MutVar#s.
Compare the underlying pointers of two mutable arrays.
Compare the underlying pointers of two mutable byte arrays.
Compare the underlying pointers of two PromptTag#s.
Compare the underlying pointers of two small arrays.
Compare the underlying pointers of two small mutable arrays.
Compare the underlying pointers of two TVar#s.
Compare the underlying pointers of two unlifted values for equality.
This is less dangerous than reallyUnsafePtrEquality, since the arguments are guaranteed to be evaluated. This means there is no risk of accidentally comparing a thunk. It's however still more dangerous than e.g. sameArray#.
Alias for tagToEnum#. Returns True if its parameter is 1# and False if it is 0#.
forall a. O adataToTag# evaluates its argument and returns the index
(starting at zero) of the constructor used to produce that
argument. Any algebraic data type with all of its constructors
in scope may be used with dataToTag#.
dataToTag# (Left ())0#dataToTag# (Right undefined)1#
dataToTag# :: a -> Int#The constraint WithDict cls meth can be solved when evidence for
the constraint cls can be provided in the form of a dictionary of
type meth. This requires cls to be a class constraint whose single
method has type meth.
For more (important) details on how this works, see
Note [withDict] in GHC.Tc.Instance.Class in GHC.
withDict :: meth -> (cls => r) -> rA de Bruijn index for a binder within a KindRep.
Deprecated. Void# is now an alias for the unboxed tuple (# #).
Compute the length of a NUL-terminated string. This address
must refer to immutable memory. GHC includes a built-in rule for
constant folding when the argument is a statically-known literal.
That is, a core-to-core pass reduces the expression
cstringLength# "hello"# to the constant 5#.
Apply a function to a State# RealWorld token. When manually applying
a function to realWorld#, it is necessary to use NOINLINE to prevent
semantically undesirable floating. runRW# is inlined, but only very late
in compilation after all floating is complete.
The call noinline f arranges that f will not be inlined.
It is removed during CorePrep so that its use imposes no overhead
(besides the fact that it blocks inlining.)
The oneShot function can be used to give a hint to the compiler that its argument will be called at most once, which may (or may not) enable certain optimizations. It can be useful to improve the performance of code in continuation passing style.
If oneShot is used wrongly, then it may be that computations whose result that would otherwise be shared are re-evaluated every time they are used. Otherwise, the use of oneShot is safe.
oneShot is representation-polymorphic: the type variables may refer to lifted or unlifted types.
The function coerce allows you to safely convert between values of
types that have the same representation with no run-time overhead. In the
simplest case you can use it instead of a newtype constructor, to go from
the newtype's concrete type to the abstract type. But it also works in
more complicated settings, e.g. converting a list of newtypes to a list of
concrete types.
When used in conversions involving a newtype wrapper, make sure the newtype constructor is in scope.
This function is representation-polymorphic, but the
RuntimeRep type argument is marked as Inferred, meaning
that it is not available for visible type application. This means
the typechecker will accept .coerce @Int @Age 42
newtype TTL = TTL Int deriving (Eq, Ord, Show)newtype Age = Age Int deriving (Eq, Ord, Show)coerce (Age 42) :: TTLTTL 42coerce (+ (1 :: Int)) (Age 42) :: TTLTTL 43coerce (map (+ (1 :: Int))) [Age 42, Age 24] :: [TTL][TTL 43,TTL 25]
sets the byte range setByteArray# ba off len c[off, off+len) of
the MutableByteArray# to the byte c.
Low word of signed integer multiply.
Exponentiation.
attaches a C
function pointer addCFinalizerToWeak# fptr ptr flag eptr wfptr to a weak pointer w as a finalizer. If
flag is zero, fptr will be called with one argument,
ptr. Otherwise, it will be called with two arguments,
eptr and ptr. addCFinalizerToWeak# returns
1 on success, or 0 if w is already dead.
Add signed integers reporting overflow.
First member of result is the sum truncated to an Int#;
second member is zero if the true sum fits in an Int#,
nonzero if overflow occurred (the sum is either too large
or too small to fit in an Int#).
Add unsigned integers reporting overflow.
The first element of the pair is the result. The second element is
the carry flag, which is nonzero on overflow. See also plusWord2#.
Coerce directly from address to int.
Convert an Addr# to a followable Any type.
Bitwise "and".
Retrieve the address of any Haskell value. This is
essentially an unsafeCoerce#, but if implemented as such
the core lint pass complains and fails to compile.
As a primop, it is opaque to core/stg, and only appears
in cmm (where the copy propagation pass will get rid of it).
Note that "a" must be a value, not a thunk! It's too late
for strictness analysis to enforce this, so you're on your
own to guarantee this. Also note that Addr# is not a GC
pointer - up to you to guarantee that it does not become
a dangling pointer immediately after you get it.
Compare and swap on a word-sized memory location.
Use as: s -> atomicCasAddrAddr# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Compare and swap on a 16 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr16# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Compare and swap on a 32 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr32# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Compare and swap on a 64 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr64# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Compare and swap on a 8 bit-sized and aligned memory location.
Use as: s -> atomicCasWordAddr8# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
Compare and swap on a word-sized and aligned memory location.
Use as: s -> atomicCasWordAddr# location expected desired s
This version always returns the old value read. This follows the normal protocol for CAS operations (and matches the underlying instruction on most architectures).
Implies a full memory barrier.
The atomic exchange operation. Atomically exchanges the value at the first address with the Addr# given as second argument. Implies a read barrier.
The atomic exchange operation. Atomically exchanges the value at the address with the given value. Returns the old value. Implies a read barrier.
Modify the contents of a MutVar#, returning the previous
contents x :: a and the result of applying the given function to the
previous contents f x :: c.
The data type c (not a newtype!) must be a record whose first field
is of lifted type a :: Type and is not unpacked. For example, product
types c ~ Solo a or c ~ (a, b) work well. If the record type is both
monomorphic and strict in its first field, it's recommended to mark the
latter {-# NOUNPACK #-} explicitly.
Under the hood atomicModifyMutVar2# atomically replaces a pointer to an
old x :: a with a pointer to a selector thunk fst r, where
fst is a selector for the first field of the record and r is a
function application thunk r = f x.
atomicModifyIORef2Native from atomic-modify-general package makes an
effort to reflect restrictions on c faithfully, providing a
well-typed high-level wrapper.
Modify the contents of a MutVar#, returning the previous
contents and the result of applying the given function to the
previous contents.
Given an array and an offset in machine words, read an element. The index is assumed to be in bounds. Implies a full memory barrier.
Given an address, read a machine word. Implies a full memory barrier.
Atomically exchange the value of a MutVar#.
Given an array and an offset in machine words, write an element. The index is assumed to be in bounds. Implies a full memory barrier.
Given an address, write a machine word. Implies a full memory barrier.
Reverse the order of the bits in a word.
Reverse the order of the bits in a 16-bit word.
Reverse the order of the bits in a 32-bit word.
Reverse the order of the bits in a 64-bit word.
Reverse the order of the bits in a 8-bit word.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Broadcast a scalar to all elements of a vector.
Intended for use with pinned arrays; otherwise very unsafe!
Swap bytes in a word.
Swap bytes in the lower 16 bits of a word. The higher bytes are undefined.
Swap bytes in the lower 32 bits of a word. The higher bytes are undefined.
Swap bytes in a 64 bits of a word.
Given an array, an offset, the expected old value, and
the new value, perform an atomic compare and swap (i.e. write the new
value if the current value and the old value are the same pointer).
Returns 0 if the swap succeeds and 1 if it fails. Additionally, returns
the element at the offset after the operation completes. This means that
on a success the new value is returned, and on a failure the actual old
value (not the expected one) is returned. Implies a full memory barrier.
The use of a pointer equality on a boxed value makes this function harder
to use correctly than casIntArray#. All of the difficulties
of using reallyUnsafePtrEquality# correctly apply to
casArray# as well.
Given an array, an offset in 16 bit units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, an offset in 32 bit units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, an offset in 64 bit units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, an offset in bytes, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, an offset in machine words, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.
Compare-and-swap: perform a pointer equality test between
the first value passed to this function and the value
stored inside the MutVar#. If the pointers are equal,
replace the stored value with the second value passed to this
function, otherwise do nothing.
Returns the final value stored inside the MutVar#.
The Int# indicates whether a swap took place,
with 1# meaning that we didn't swap, and 0#
that we did.
Implies a full memory barrier.
Because the comparison is done on the level of pointers,
all of the difficulties of using
reallyUnsafePtrEquality# correctly apply to
casMutVar# as well.
Unsafe, machine-level atomic compare and swap on an element within an array.
See the documentation of casArray#.
Bitcast a Double# into a Word64#
Bitcast a Float# into a Word32#
Bitcast a Word32# into a Float#
Bitcast a Word64# into a Double#
evaluates catch# k handler sk s, invoking handler on any exceptions
thrown.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
Run the supplied IO action with an empty CCS. For example, this is used by the interpreter to run an interpreted computation without the call stack showing that it was invoked from GHC.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
returns the size of the given closure in
machine words. closureSize# closure
Count leading zeros in a word.
Count leading zeros in the lower 16 bits of a word.
Count leading zeros in the lower 32 bits of a word.
Count leading zeros in a 64-bit word.
Count leading zeros in the lower 8 bits of a word.
Recursively add a closure and its transitive closure to a
Compact# (a CNF), evaluating any unevaluated components
at the same time. Note: compactAdd# is not thread-safe, so
only one thread may call compactAdd# with a particular
Compact# at any given time. The primop does not
enforce any mutual exclusion; the caller is expected to
arrange this.
Like compactAdd#, but retains sharing and cycles
during compaction.
Attempt to allocate a compact block with the capacity (in
bytes) given by the first argument. The Addr# is a pointer
to previous compact block of the CNF or nullAddr# to create a
new CNF with a single compact block.
The resulting block is not known to the GC until
compactFixupPointers# is called on it, and care must be taken
so that the address does not escape or memory will be leaked.
Returns 1# if the object is contained in the CNF, 0# otherwise.
Returns 1# if the object is in any CNF at all, 0# otherwise.
Given the pointer to the first block of a CNF and the address of the root object in the old address space, fix up the internal pointers inside the CNF to account for a different position in memory than when it was serialized. This method must be called exactly once after importing a serialized CNF. It returns the new CNF and the new adjusted root address.
Returns the address and the utilized size (in bytes) of the first compact block of a CNF.
Given a CNF and the address of one its compact blocks, returns the
next compact block and its utilized size, or nullAddr# if the
argument was the last compact block in the CNF.
Create a new CNF with a single compact block. The argument is the capacity of the compact block (in bytes, not words). The capacity is rounded up to a multiple of the allocator block size and is capped to one mega block.
Set the new allocation size of the CNF. This value (in bytes) determines the capacity of each compact block in the CNF. It does not retroactively affect existing compact blocks in the CNF.
Return the total capacity (in bytes) of all the compact blocks in the CNF.
compares
compareByteArrays# src1 src1_ofs src2 src2_ofs nn bytes starting at offset src1_ofs in the first
ByteArray# src1 to the range of n bytes
(i.e. same length) starting at offset src2_ofs of the second
ByteArray# src2. Both arrays must fully contain the
specified ranges, but this is not checked. Returns an Int#
less than, equal to, or greater than zero if the range is found,
respectively, to be byte-wise lexicographically less than, to
match, or be greater than the second range.
See GHC.Prim#continuations.
copies copyAddrToAddr# src dest lenlen bytes
from src to dest. These two memory ranges are allowed to overlap.
Analogous to the standard C function memmove, but with a different
argument order.
copies copyAddrToAddrNonOverlapping# src dest lenlen bytes
from src to dest. As the name suggests, these two memory ranges
must not overlap, although this pre-condition is not checked.
Analogous to the standard C function memcpy, but with a different
argument order.
Copy a memory range starting at the Addr# to the specified range in the MutableByteArray#. The memory region at Addr# and the ByteArray# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the MutableByteArray# (e.g. if the MutableByteArray# were pinned), but this is not checked either.
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. Both arrays must fully contain the specified ranges, but this is not checked. The two arrays must not be the same array in different states, but this is not checked either.
copies the range
starting at offset copyByteArray# src src_ofs dst dst_ofs lensrc_ofs of length len from the
ByteArray# src to the MutableByteArray# dst
starting at offset dst_ofs. Both arrays must fully contain
the specified ranges, but this is not checked. The two arrays must
not be the same array in different states, but this is not checked
either.
Copy a range of the ByteArray# to the memory range starting at the Addr#. The ByteArray# and the memory region at Addr# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the ByteArray# (e.g. if the ByteArray# were pinned), but this is not checked either.
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. Both arrays must fully contain the specified ranges, but this is not checked. In the case where the source and destination are the same array the source and destination regions may overlap.
copies the
range starting at offset copyMutableByteArray# src src_ofs dst dst_ofs lensrc_ofs of length len from the
MutableByteArray# src to the MutableByteArray# dst
starting at offset dst_ofs. Both arrays must fully contain the
specified ranges, but this is not checked. The regions are
allowed to overlap, although this is only possible when the same
array is provided as both the source and the destination.
copies the range starting at offset copyMutableByteArrayNonOverlapping# src src_ofs dst dst_ofs lensrc_ofs of length len from
the MutableByteArray# src to the MutableByteArray# dst
starting at offset dst_ofs. Both arrays must fully contain the
specified ranges, but this is not checked. The regions are not
allowed to overlap, but this is also not checked.
Copy a range of the MutableByteArray# to the memory range starting at the Addr#. The MutableByteArray# and the memory region at Addr# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the MutableByteArray# (e.g. if the MutableByteArray# were pinned), but this is not checked either.
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. Both arrays must fully contain the specified ranges, but this is not checked. The two arrays must not be the same array in different states, but this is not checked either.
Given a source array, an offset into the source array, a destination array, an offset into the destination array, and a number of elements to copy, copy the elements from the source array to the destination array. The source and destination arrays can refer to the same array. Both arrays must fully contain the specified ranges, but this is not checked. The regions are allowed to overlap, although this is only possible when the same array is provided as both the source and the destination.
Count trailing zeros in a word.
Count trailing zeros in the lower 16 bits of a word.
Count trailing zeros in the lower 32 bits of a word.
Count trailing zeros in a 64-bit word.
Count trailing zeros in the lower 8 bits of a word.
Convert to integer. First component of the result is -1 or 1, indicating the sign of the mantissa. The next two are the high and low 32 bits of the mantissa respectively, and the last is the exponent.
Decode Double# into mantissa and base-2 exponent.
Convert to integers.
First Int# in result is the mantissa; second is the exponent.
Sleep specified number of microseconds.
Divide two vectors element-wise.
Divide two vectors element-wise.
Divide two vectors element-wise.
Divide two vectors element-wise.
Divide two vectors element-wise.
Divide two vectors element-wise.
Truncates a Double# value to the nearest Int#.
Results are undefined if the truncation if truncation yields
a value outside the range of Int#.
Given an array, and offset in machine words, and a value to add, atomically add the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an address, and a value to add, atomically add the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, and offset in machine words, and a value to AND, atomically AND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an address, and a value to AND, atomically AND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, and offset in machine words, and a value to NAND, atomically NAND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an address, and a value to NAND, atomically NAND the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, and offset in machine words, and a value to OR, atomically OR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an address, and a value to OR, atomically OR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, and offset in machine words, and a value to subtract, atomically subtract the value from the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an address, and a value to subtract, atomically subtract the value from the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an array, and offset in machine words, and a value to XOR, atomically XOR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Given an address, and a value to XOR, atomically XOR the value into the element. Returns the value of the element before the operation. Implies a full memory barrier.
Finalize a weak pointer. The return value is an unboxed tuple
containing the new state of the world and an "unboxed Maybe",
represented by an Int# and a (possibly invalid) finalization
action. An Int# of 1 indicates that the finalizer is valid. The
return value b from the finalizer should be ignored.
Truncates a Float# value to the nearest Int#.
Results are undefined if the truncation if truncation yields
a value outside the range of Int#.
Fused multiply-add operation x*y+z. See GHC.Prim#fma.
Fused multiply-add operation x*y+z. See GHC.Prim#fma.
Fused multiply-subtract operation x*y-z. See GHC.Prim#fma.
Fused multiply-subtract operation x*y-z. See GHC.Prim#fma.
Fused negate-multiply-add operation -x*y+z. See GHC.Prim#fma.
Fused negate-multiply-add operation -x*y+z. See GHC.Prim#fma.
Fused negate-multiply-subtract operation -x*y-z. See GHC.Prim#fma.
Fused negate-multiply-subtract operation -x*y-z. See GHC.Prim#fma.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Returns the current CostCentreStack (value is NULL if
not profiling). Takes a dummy argument which can be used to
avoid the call to getCurrentCCS# being floated out by the
simplifier, which would result in an uninformative stack
(CAF).
Return the number of elements in the array, correctly accounting for
the effect of shrinkMutableByteArray# and resizeMutableByteArray#.
Return the number of elements in the array, correctly accounting for
the effect of shrinkSmallMutableArray# and resizeSmallMutableArray#.
Read a machine address; offset in machine words.
Read a machine address; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read from the specified index of an immutable array. The result is packaged into an unboxed unary tuple; the result itself is not yet evaluated. Pattern matching on the tuple forces the indexing of the array to happen but does not evaluate the element itself. Evaluating the thunk prevents additional thunks from building up on the heap. Avoiding these thunks, in turn, reduces references to the argument array, allowing it to be garbage collected more promptly.
Read an 8-bit character; offset in bytes.
Read an 8-bit character; offset in bytes.
Read a double-precision floating-point value; offset in 8-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a double-precision floating-point value; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a single-precision floating-point value; offset in 4-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a single-precision floating-point value; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a 16-bit signed integer; offset in 2-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a 16-bit signed integer; offset in 2-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a 32-bit signed integer; offset in 4-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a 32-bit signed integer; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a 64-bit signed integer; offset in 8-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a 64-bit signed integer; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read an 8-bit signed integer; offset in bytes.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read an 8-bit signed integer; offset in bytes.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a word-sized integer; offset in machine words.
Read a word-sized integer; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read from specified index of immutable array. Result is packaged into an unboxed singleton; the result itself is not yet evaluated.
Read a StablePtr# value; offset in machine words.
Read a StablePtr# value; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read a 32-bit character; offset in 4-byte words.
Read a 32-bit character; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read a 16-bit unsigned integer; offset in 2-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a 16-bit unsigned integer; offset in 2-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a 32-bit unsigned integer; offset in 4-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a 32-bit unsigned integer; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a 64-bit unsigned integer; offset in 8-byte words.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a 64-bit unsigned integer; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read an 8-bit unsigned integer; offset in bytes.
Read a machine address; offset in bytes.
Read an 8-bit character; offset in bytes.
Read a double-precision floating-point value; offset in bytes.
Read a single-precision floating-point value; offset in bytes.
Read a word-sized integer; offset in bytes.
Read a 16-bit signed integer; offset in bytes.
Read a 32-bit signed integer; offset in bytes.
Read a 64-bit signed integer; offset in bytes.
Read a StablePtr# value; offset in bytes.
Read a 32-bit character; offset in bytes.
Read a word-sized unsigned integer; offset in bytes.
Read a 16-bit unsigned integer; offset in bytes.
Read a 32-bit unsigned integer; offset in bytes.
Read a 64-bit unsigned integer; offset in bytes.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read a vector from specified index of immutable array of scalars; offset is in scalar elements.
Read an 8-bit unsigned integer; offset in bytes.
Read a machine address; offset in bytes.
Read an 8-bit character; offset in bytes.
Read a double-precision floating-point value; offset in bytes.
Read a single-precision floating-point value; offset in bytes.
Read a word-sized integer; offset in bytes.
Read a 16-bit signed integer; offset in bytes.
Read a 32-bit signed integer; offset in bytes.
Read a 64-bit signed integer; offset in bytes.
Read a StablePtr# value; offset in bytes.
Read a 32-bit character; offset in bytes.
Read a word-sized unsigned integer; offset in bytes.
Read a 16-bit unsigned integer; offset in bytes.
Read a 32-bit unsigned integer; offset in bytes.
Read a 64-bit unsigned integer; offset in bytes.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a vector from specified index of immutable array.
Reads vector; offset in bytes.
Read a word-sized unsigned integer; offset in machine words.
Read a word-sized unsigned integer; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Insert a scalar at the given position in a vector.
Coerce directly from int to address.
Convert an Int# to the corresponding Double# with the same
integral value (up to truncation due to floating-point precision). e.g.
int2Double# 1# == 1.0##
Convert an Int# to the corresponding Float# with the same
integral value (up to truncation due to floating-point precision). e.g.
int2Float# 1# == 1.0#
Determine whether a ByteArray# is guaranteed not to move during GC.
Return 1 if MVar# is empty; 0 otherwise.
Determine whether a MutableByteArray# is guaranteed not to move
during GC.
keeps the value keepAlive# x s kx alive during the execution
of the computation k.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
Set the label of the given thread. The ByteArray# should contain
a UTF-8-encoded string.
Returns an array of the threads started by the program. Note that this threads which have finished execution may or may not be present in this list, depending upon whether they have been collected by the garbage collector.
evaluates maskAsyncExceptions# k sk s such that asynchronous
exceptions are deferred until after evaluation has finished.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
evaluates maskUninterruptible# k sk s such that asynchronous
exceptions are deferred until after evaluation has finished.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
Result is meaningless if two Addr#s are so far apart that their
difference doesn't fit in an Int#.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Subtract two vectors element-wise.
Wrap a BCO in a AP_UPD thunk which will be updated with the value of
the BCO when evaluated.
creates a weak reference to value mkWeak# k v finalizer sk,
with an associated reference to some value v. If k is still
alive then v can be retrieved using deRefWeak#. Note that
the type of k must be represented by a pointer (i.e. of kind
TYPE 'LiftedRep or TYPE 'UnliftedRep@).
Return non-zero if there is any possibility that the upper word of a signed integer multiply might contain useful information. Return zero only if you are completely sure that no overflow can occur. On a 32-bit platform, the recommended implementation is to do a 32 x 32 -> 64 signed multiply, and subtract result[63:32] from (result[31] >>signed 31). If this is zero, meaning that the upper word is merely a sign extension of the lower one, no overflow can occur.
On a 64-bit platform it is not always possible to acquire the top 64 bits of the result. Therefore, a recommended implementation is to take the absolute value of both operands, and return 0 iff bits[63:31] of them are zero, since that means that their magnitudes fit within 31 bits, so the magnitude of the product must fit into 62 bits.
If in doubt, return non-zero, but do make an effort to create the
correct answer for small args, since otherwise the performance of
(*) :: Integer -> Integer -> Integer will be poor.
Intended for use with pinned arrays; otherwise very unsafe!
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Unary negation.
Since the negative Int# range extends one further than the
positive range, negateInt# of the most negative number is an
identity operation. This way, negateInt# is always its own inverse.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Negate element-wise.
Like newPinnedByteArray# but allow specifying an arbitrary
alignment, which must be a power of two.
Create a new mutable array with the specified number of elements, in the specified state thread, with each element containing the specified initial value.
creates a new bytecode object. The
resulting object encodes a function of the given arity with the instructions
encoded in newBCO# instrs lits ptrs arity bitmapinstrs, and a static reference table usage bitmap given by
bitmap.
Create a new mutable byte array of specified size (in bytes), in the specified state thread. The size of the memory underlying the array will be rounded up to the platform's word size.
Create new IOPort#; initially empty.
Create new MVar#; initially empty.
Create MutVar# with specified initial value in specified state thread.
Like newByteArray# but GC guarantees not to move it.
See GHC.Prim#continuations.
Create a new mutable array with the specified number of elements, in the specified state thread, with each element containing the specified initial value.
Create a new TVar# holding a specified initial value.
Bitwise "not", also known as the binary complement.
The null address.
Returns the number of sparks in the local spark pool.
Bitwise "or".
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Pack the elements of an unboxed tuple into a vector.
Deposit bits to a word at locations specified by a mask, aka parallel bit deposit.
Software emulation:
pdep :: Word -> Word -> Word
pdep src mask = go 0 src mask
where
go :: Word -> Word -> Word -> Word
go result _ 0 = result
go result src mask = go newResult newSrc newMask
where
maskCtz = countTrailingZeros mask
newResult = if testBit src 0 then setBit result maskCtz else result
newSrc = src `shiftR` 1
newMask = clearBit mask maskCtzDeposit bits to lower 16 bits of a word at locations specified by a mask.
Deposit bits to lower 32 bits of a word at locations specified by a mask.
Deposit bits to a word at locations specified by a mask.
Deposit bits to lower 8 bits of a word at locations specified by a mask.
Extract bits from a word at locations specified by a mask, aka parallel bit extract.
Software emulation:
pext :: Word -> Word -> Word
pext src mask = loop 0 0 0
where
loop i count result
| i >= finiteBitSize (0 :: Word)
= result
| testBit mask i
= loop (i + 1) (count + 1) (if testBit src i then setBit result count else result)
| otherwise
= loop (i + 1) count resultExtract bits from lower 16 bits of a word at locations specified by a mask.
Extract bits from lower 32 bits of a word at locations specified by a mask.
Extract bits from a word at locations specified by a mask.
Extract bits from lower 8 bits of a word at locations specified by a mask.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add unsigned integers, with the high part (carry) in the first
component of the returned pair and the low part in the second
component of the pair. See also addWordC#.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Add two vectors element-wise.
Count the number of set bits in a word.
Count the number of set bits in the lower 16 bits of a word.
Count the number of set bits in the lower 32 bits of a word.
Count the number of set bits in a 64-bit word.
Count the number of set bits in the lower 8 bits of a word.
See GHC.Prim#continuations.
Witness for an unboxed Proxy# value, which has no runtime
representation.
If MVar# is full, block until it becomes empty.
Then store value arg as its new contents.
Rounds towards zero. The behavior is undefined if the second argument is zero.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero.
Takes high word of dividend, then low word of dividend, then divisor. Requires that high word < divisor.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Rounds towards zero element-wise.
Read a machine address; offset in machine words.
Read a machine address; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read from specified index of mutable array. Result is not yet evaluated.
Read an 8-bit character; offset in bytes.
Read an 8-bit character; offset in bytes.
Read a double-precision floating-point value; offset in 8-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a double-precision floating-point value; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a single-precision floating-point value; offset in 4-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a single-precision floating-point value; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
If IOPort# is empty, block until it becomes full.
Then remove and return its contents, and set it empty.
Throws an IOPortException if another thread is already
waiting to read this IOPort#.
Read a 16-bit signed integer; offset in 2-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a 16-bit signed integer; offset in 2-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a 32-bit signed integer; offset in 4-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a 32-bit signed integer; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a 64-bit signed integer; offset in 8-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a 64-bit signed integer; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read an 8-bit signed integer; offset in bytes.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read an 8-bit signed integer; offset in bytes.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a word-sized integer; offset in machine words.
Read a word-sized integer; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
If MVar# is empty, block until it becomes full.
Then read its contents without modifying the MVar, without possibility
of intervention from other threads.
Read contents of MutVar#. Result is not yet evaluated.
Read from specified index of mutable array. Result is not yet evaluated.
Read a StablePtr# value; offset in machine words.
Read a StablePtr# value; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read contents of TVar# inside an STM transaction,
i.e. within a call to atomically#.
Does not force evaluation of the result.
Read contents of TVar# outside an STM transaction.
Does not force evaluation of the result.
Read a 32-bit character; offset in 4-byte words.
Read a 32-bit character; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Read a 16-bit unsigned integer; offset in 2-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a 16-bit unsigned integer; offset in 2-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a 32-bit unsigned integer; offset in 4-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a 32-bit unsigned integer; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a 64-bit unsigned integer; offset in 8-byte words.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a 64-bit unsigned integer; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read an 8-bit unsigned integer; offset in bytes.
Read a machine address; offset in bytes.
Read an 8-bit character; offset in bytes.
Read a double-precision floating-point value; offset in bytes.
Read a single-precision floating-point value; offset in bytes.
Read a word-sized integer; offset in bytes.
Read a 16-bit signed integer; offset in bytes.
Read a 32-bit signed integer; offset in bytes.
Read a 64-bit signed integer; offset in bytes.
Read a StablePtr# value; offset in bytes.
Read a 32-bit character; offset in bytes.
Read a word-sized unsigned integer; offset in bytes.
Read a 16-bit unsigned integer; offset in bytes.
Read a 32-bit unsigned integer; offset in bytes.
Read a 64-bit unsigned integer; offset in bytes.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read a vector from specified index of mutable array of scalars; offset is in scalar elements.
Read an 8-bit unsigned integer; offset in bytes.
Read a machine address; offset in bytes.
Read an 8-bit character; offset in bytes.
Read a double-precision floating-point value; offset in bytes.
Read a single-precision floating-point value; offset in bytes.
Read a word-sized integer; offset in bytes.
Read a 16-bit signed integer; offset in bytes.
Read a 32-bit signed integer; offset in bytes.
Read a 64-bit signed integer; offset in bytes.
Read a StablePtr# value; offset in bytes.
Read a 32-bit character; offset in bytes.
Read a word-sized unsigned integer; offset in bytes.
Read a 16-bit unsigned integer; offset in bytes.
Read a 32-bit unsigned integer; offset in bytes.
Read a 64-bit unsigned integer; offset in bytes.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Reads vector; offset in scalar elements.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a vector from specified index of mutable array.
Reads vector; offset in bytes.
Read a word-sized unsigned integer; offset in machine words.
Read a word-sized unsigned integer; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
The token used in the implementation of the IO monad as a state monad. It does not pass any information at runtime. See also runRW#.
Returns 1# if the given pointers are equal and 0# otherwise.
Return the remainder when the Addr# arg, treated like an Int#,
is divided by the Int# arg.
Satisfies (. The
behavior is undefined if the second argument is zero.quotInt# x y) *# y +# (remInt# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Satisfies (. quot# x y) times# y plus# (rem# x y) == x
Resize mutable byte array to new specified size (in bytes), shrinking or growing it.
The returned MutableByteArray# is either the original
MutableByteArray# resized in-place or, if not possible, a newly
allocated (unpinned) MutableByteArray# (with the original content
copied over).
To avoid undefined behaviour, the original MutableByteArray# shall
not be accessed anymore after a resizeMutableByteArray# has been
performed. Moreover, no reference to the old one should be kept in order
to allow garbage collection of the original MutableByteArray# in
case a new MutableByteArray# had to be allocated.
The value of is bottom if seq a ba is bottom, and
otherwise equal to b. In other words, it evaluates the first
argument a to weak head normal form (WHNF). seq is usually
introduced to improve performance by avoiding unneeded laziness.
A note on evaluation order: the expression does
not guarantee that seq a ba will be evaluated before b.
The only guarantee given by seq is that the both a
and b will be evaluated before seq returns a value.
In particular, this means that b may be evaluated before
a. If you need to guarantee a specific order of evaluation,
you must use the function pseq from the "parallel" package.
sets all of the bytes in
setAddrRange# dest len c[dest, dest+len) to the value c.
Analogous to the standard C function memset, but with a different
argument order.
Sets the allocation counter for the current thread to the given value.
Shrink mutable byte array to new specified size (in bytes), in
the specified state thread. The new size argument must be less than or
equal to the current size as reported by getSizeofMutableByteArray#.
Assuming the non-profiling RTS, this primitive compiles to an O(1) operation in C--, modifying the array in-place. Backends bypassing C-- representation (such as JavaScript) might behave differently.
Shrink mutable array to new specified size, in
the specified state thread. The new size argument must be less than or
equal to the current size as reported by getSizeofSmallMutableArray#.
Assuming the non-profiling RTS, for the copying garbage collector (default) this primitive compiles to an O(1) operation in C--, modifying the array in-place. For the non-moving garbage collector, however, the time is proportional to the number of elements shrinked out. Backends bypassing C-- representation (such as JavaScript) might behave differently.
Return the number of elements in the array.
Return the size of the array in bytes.
Return the number of elements in the array.
Return the size of the array in bytes. Deprecated, it is
unsafe in the presence of shrinkMutableByteArray# and resizeMutableByteArray#
operations on the same mutable byte
array.
Return the number of elements in the array.
Return the number of elements in the array. Deprecated, it is
unsafe in the presence of shrinkSmallMutableArray# and resizeSmallMutableArray#
operations on the same small mutable array.
Subtract signed integers reporting overflow.
First member of result is the difference truncated to an Int#;
second member is zero if the true difference fits in an Int#,
nonzero if overflow occurred (the difference is either too large
or too small to fit in an Int#).
Subtract unsigned integers reporting overflow. The first element of the pair is the result. The second element is the carry flag, which is nonzero on overflow.
If MVar# is empty, block until it becomes full.
Then remove and return its contents, and set it empty.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.
Get the label of the given thread.
Morally of type ThreadId# -> IO (Maybe ByteArray#), with a 1# tag
denoting Just.
Get the status of the given thread. Result is
(ThreadStatus, Capability, Locked) where
ThreadStatus is one of the status constants defined in
rts/Constants.h, Capability is the number of
the capability which currently owns the thread, and
Locked is a boolean indicating whether the
thread is bound to that capability.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Return a triple (isHighNeeded,high,low) where high and low are respectively the high and low bits of the double-word result. isHighNeeded is a cheap way to test if the high word is a sign-extension of the low word (isHighNeeded = 0#) or not (isHighNeeded = 1#).
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Multiply two vectors element-wise.
Emits an event via the RTS tracing framework. The contents
of the event is the binary object passed as the first argument with
the given length passed as the second argument. The event will be
emitted to the .eventlog file.
Emits an event via the RTS tracing framework. The contents
of the event is the zero-terminated byte string passed as the first
argument. The event will be emitted either to the .eventlog file,
or to stderr, depending on the runtime RTS flags.
Emits a marker event via the RTS tracing framework. The contents
of the event is the zero-terminated byte string passed as the first
argument. The event will be emitted either to the .eventlog file,
or to stderr, depending on the runtime RTS flags.
If MVar# is full, immediately return with integer 0.
Otherwise, store value arg as MVar#'s new contents, and return with integer 1.
If MVar# is empty, immediately return with integer 0 and value undefined.
Otherwise, return with integer 1 and contents of MVar#.
If MVar# is empty, immediately return with integer 0 and value undefined.
Otherwise, return with integer 1 and contents of MVar#, and set MVar# empty.
Shift left. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
Shift right arithmetic. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
Shift left logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.
evaluates unmaskAsyncUninterruptible# k sk s such that asynchronous
exceptions are unmasked.
Note that the result type here isn't quite as unrestricted as the polymorphic type might suggest; see the section "RuntimeRep polymorphism in continuation-style primops" for details.
copies the closure and pointers in the
payload of the given closure into two new arrays, and returns a pointer to
the first word of the closure's info table, a non-pointer array for the raw
bytes of the closure, and a pointer array for the pointers in the payload. unpackClosure# closure
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Unpack the elements of a vector into an unboxed tuple. #
Make a mutable array immutable, without copying.
Make a mutable byte array immutable, without copying.
Make a mutable array immutable, without copying.
Make an immutable array mutable, without copying.
Make an immutable byte array mutable, without copying.
Make an immutable array mutable, without copying.
This is an alias for the unboxed unit tuple constructor.
In earlier versions of GHC, void# was a value
of the primitive type Void#, which is now defined to be (# #).
Block until input is available on specified file descriptor.
Block until output is possible on specified file descriptor.
Convert an Word# to the corresponding Double# with the same
integral value (up to truncation due to floating-point precision). e.g.
word2Double# 1## == 1.0##
Convert an Word# to the corresponding Float# with the same
integral value (up to truncation due to floating-point precision). e.g.
word2Float# 1## == 1.0#
Write a machine address; offset in machine words.
Write a machine address; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write to specified index of mutable array.
Write an 8-bit character; offset in bytes.
Write an 8-bit character; offset in bytes.
Write a double-precision floating-point value; offset in 8-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a double-precision floating-point value; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a single-precision floating-point value; offset in 4-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a single-precision floating-point value; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
If IOPort# is full, immediately return with integer 0,
throwing an IOPortException.
Otherwise, store value arg as IOPort#'s new contents,
and return with integer 1.
Write a 16-bit signed integer; offset in 2-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a 16-bit signed integer; offset in 2-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a 32-bit signed integer; offset in 4-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a 32-bit signed integer; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a 64-bit signed integer; offset in 8-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a 64-bit signed integer; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write an 8-bit signed integer; offset in bytes.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write an 8-bit signed integer; offset in bytes.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a word-sized integer; offset in machine words.
Write a word-sized integer; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write contents of MutVar#.
Write to specified index of mutable array.
Write a StablePtr# value; offset in machine words.
Write a StablePtr# value; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write contents of TVar#.
Write a 32-bit character; offset in 4-byte words.
Write a 32-bit character; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write a 16-bit unsigned integer; offset in 2-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a 16-bit unsigned integer; offset in 2-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a 32-bit unsigned integer; offset in 4-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a 32-bit unsigned integer; offset in 4-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a 64-bit unsigned integer; offset in 8-byte words.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a 64-bit unsigned integer; offset in 8-byte words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write an 8-bit unsigned integer; offset in bytes.
Write a machine address; offset in bytes.
Write an 8-bit character; offset in bytes.
Write a double-precision floating-point value; offset in bytes.
Write a single-precision floating-point value; offset in bytes.
Write a word-sized integer; offset in bytes.
Write a 16-bit signed integer; offset in bytes.
Write a 32-bit signed integer; offset in bytes.
Write a 64-bit signed integer; offset in bytes.
Write a StablePtr# value; offset in bytes.
Write a 32-bit character; offset in bytes.
Write a word-sized unsigned integer; offset in bytes.
Write a 16-bit unsigned integer; offset in bytes.
Write a 32-bit unsigned integer; offset in bytes.
Write a 64-bit unsigned integer; offset in bytes.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write a vector to specified index of mutable array of scalars; offset is in scalar elements.
Write an 8-bit unsigned integer; offset in bytes.
Write a machine address; offset in bytes.
Write an 8-bit character; offset in bytes.
Write a double-precision floating-point value; offset in bytes.
Write a single-precision floating-point value; offset in bytes.
Write a word-sized integer; offset in bytes.
Write a 16-bit signed integer; offset in bytes.
Write a 32-bit signed integer; offset in bytes.
Write a 64-bit signed integer; offset in bytes.
Write a StablePtr# value; offset in bytes.
Write a 32-bit character; offset in bytes.
Write a word-sized unsigned integer; offset in bytes.
Write a 16-bit unsigned integer; offset in bytes.
Write a 32-bit unsigned integer; offset in bytes.
Write a 64-bit unsigned integer; offset in bytes.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write vector; offset in scalar elements.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a vector to specified index of mutable array.
Write vector; offset in bytes.
Write a word-sized unsigned integer; offset in machine words.
Write a word-sized unsigned integer; offset in machine words.
On some platforms, the access may fail
for an insufficiently aligned Addr#.
Bitwise "xor".