The type-safe cast operation
Modulecardano-base-0.1.6.0
Cardano.Base.Typeable
- 6 types
- 1 class
- 31 values
- Packagecardano-base-0.1.6.0
- Exports38
- LicenceApache-2.0
- SourceTypeable.hs
Decide an equality of two types
Extract a witness of equality of two types
Applies a type to a function type. Returns: Just u if the first argument
represents a function of type t -> u and the second argument represents a
function of type t. Otherwise, returns Nothing.
A flexible variation parameterised in a type constructor
Cast over k1 -> k2
Cast over k1 -> k2 -> k3
Decide heterogeneous equality of two types.
Extract a witness of heterogeneous equality of two types
Build a function type.
Force a TypeRep to normal form.
Show a type representation
Splits a type constructor application. Note that if the type constructor is polymorphic, this will not return the kinds that were used.
Observe a type representation for the type of a value.
Takes a value of type a and returns a concrete representation
of that type.
Observe the argument types of a type representation
Takes a value of type a and returns a concrete representation
of that type.
Observe the type constructor of a quantified type representation.
Proxy is a type that holds no data, but has a phantom parameter of arbitrary type (or even kind). Its use is to provide type information, even though there is no value available of that type (or it may be too costly to create one).
Historically, Proxy :: Proxy a is a safer alternative to the
undefined :: a idiom.
Proxy :: Proxy (Void, Int -> Int)Proxy
Proxy can even hold types of higher kinds,
Proxy :: Proxy EitherProxy
Proxy :: Proxy FunctorProxy
Proxy :: Proxy complicatedStructureProxy
Instances62Generic1, FoldableWithIndex, FunctorWithIndex, TraversableWithIndex, RepeatWithIndex, SemialignWithIndex, …
Generic1 ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldableWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex Void ProxyDefined in witherable-0.5 · WitherableWitherableWithIndex Void ProxyDefined in witherable-0.5 · WitherableMonad ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyFunctor ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyApplicative ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyFoldable ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableAlternative ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonadPlus ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonadZip ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipEq1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesOrd1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesRead1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesShow1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesContravariant ProxyDefined in base-4.22.0.0 · Data.Functor.ContravariantNFData1 ProxyDefined in deepseq-1.5.1.0 · Control.DeepSeqHashable1 ProxyDefined in hashable-1.5.1.0 · Data.Hashable.ClassDistributive ProxyDefined in distributive-0.6.3 · Data.DistributiveDecidable ProxyDefined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleDivisible ProxyDefined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleAlt ProxyDefined in semigroupoids-6.0.2 · Data.Functor.AltApply ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend ProxyDefined in semigroupoids-6.0.2 · Data.Functor.ExtendConclude ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Contravariant.ConcludeDecide ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideDivise ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DivisePlus ProxyDefined in semigroupoids-6.0.2 · Data.Functor.PlusAlign ProxyDefined in semialign-1.4 · Data.Semialign.InternalSemialign ProxyDefined in semialign-1.4 · Data.Semialign.InternalUnalign ProxyDefined in semialign-1.4 · Data.Semialign.InternalRepeat ProxyDefined in semialign-1.4 · Data.Semialign.InternalUnzip ProxyDefined in semialign-1.4 · Data.Semialign.InternalZip ProxyDefined in semialign-1.4 · Data.Semialign.InternalFilterable ProxyDefined in witherable-0.5 · WitherableWitherable ProxyDefined in witherable-0.5 · WitherableFromJSON1 ProxyDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 ProxyDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBounded (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyEnum (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyEq (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyData t => Data (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyRead (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyShow (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyIx (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyGeneric (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonoid (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyNFData (Proxy a)Defined in deepseq-1.5.1.0 · Control.DeepSeqHashable (Proxy a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON (Proxy a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON (Proxy a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (Proxy t) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)type Rep1 Proxy = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)
Propositional equality. If a :~: b is inhabited by some terminating
value, then the type a is the same as the type b. To use this equality
in practice, pattern-match on the a :~: b to get out the Refl constructor;
in the body of the pattern-match, the compiler knows that a ~ b.
Instances15Category, Groupoid, Semigroupoid, TestCoercion, TestEquality, NFData2, …
Category (:~:)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryGroupoid (:~:)Defined in semigroupoids-6.0.2 · Data.GroupoidSemigroupoid (:~:)Defined in semigroupoids-6.0.2 · Data.SemigroupoidTestCoercion ((:~:) a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionTestEquality ((:~:) a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityNFData2 (:~:)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData1 ((:~:) a)Defined in deepseq-1.5.1.0 · Control.DeepSeqa ~ b => Bounded (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~ b => Enum (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityEq (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equality(a ~ b, Data a) => Data (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~ b => Read (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityShow (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityNFData (a :~: b)Defined in deepseq-1.5.1.0 · Control.DeepSeq
Kind heterogeneous propositional equality. Like :~:, a :~~: b is
inhabited by a terminating value if and only if a is the same type as b.
Instances15Category, Groupoid, Semigroupoid, TestCoercion, TestEquality, NFData2, …
Category (:~~:)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryGroupoid (:~~:)Defined in semigroupoids-6.0.2 · Data.GroupoidSemigroupoid (:~~:)Defined in semigroupoids-6.0.2 · Data.SemigroupoidTestCoercion ((:~~:) a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionTestEquality ((:~~:) a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityNFData2 (:~~:)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData1 ((:~~:) a)Defined in deepseq-1.5.1.0 · Control.DeepSeqa ~~ b => Bounded (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~~ b => Enum (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityEq (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equality(Typeable i, Typeable j, Typeable a, Typeable b, a ~~ b) => Data (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~~ b => Read (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityShow (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityNFData (a :~~: b)Defined in deepseq-1.5.1.0 · Control.DeepSeq
A quantified type representation.
The class Typeable allows a concrete representation of a type to be calculated.
Instances5Eq, Ord, Show, NFData, Binary
Eq TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesShow TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowNFData TyConDefined in deepseq-1.5.1.0 · Control.DeepSeqNOTE: Prior to
deepseq-1.4.4.0this instance was only defined forbase-4.8.0.0and later.Binary TyConDefined in binary-0.8.9.3 · Data.Binary.Class