base-compat-0.14.0: A compatibility layer for base
Safe HaskellTrustworthy
LanguageHaskell2010

Type.Reflection.Compat

Synopsis

Documentation

withTypeable :: forall k (a :: k) (rep :: RuntimeRep) (r :: TYPE rep). TypeRep a -> (Typeable a => r) -> r #

Use a TypeRep as Typeable evidence.

The TypeRep pattern synonym brings a Typeable constraint into scope and can be used in place of withTypeable.

f :: TypeRep a -> ..
f rep = withTypeable {- Typeable a in scope -}

f :: TypeRep a -> ..
f TypeRep = {- Typeable a in scope -}

pattern TypeRep :: () => Typeable a => TypeRep a #

A explicitly bidirectional pattern synonym to construct a concrete representation of a type.

As an expression: Constructs a singleton TypeRep a given a implicit 'Typeable a' constraint:

TypeRep @a :: Typeable a => TypeRep a

As a pattern: Matches on an explicit TypeRep a witness bringing an implicit Typeable a constraint into scope.

f :: TypeRep a -> ..
f TypeRep = {- Typeable a in scope -}

Since: base-4.17.0.0

decTypeRep :: forall k1 k2 (a :: k1) (b :: k2). TypeRep a -> TypeRep b -> Either ((a :~~: b) -> Void) (a :~~: b) Source #

Type equality decision

Since: 4.19.0.0