Skip to content

Instantly share code, notes, and snippets.

@hgiasac
Created January 4, 2019 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hgiasac/a38efab80c66a1d6a83807ade3d17bf2 to your computer and use it in GitHub Desktop.
Save hgiasac/a38efab80c66a1d6a83807ade3d17bf2 to your computer and use it in GitHub Desktop.
data TypeRep (a :: k) where
TrType :: TypeRep Type
TrTyCon :: { trTyConFingerprint :: {-# UNPACK #-} !Fingerprint
, trTyCon :: !TyCon
, trKindVars :: [SomeTypeRep]
, trTyConKind :: !(TypeRep k)
}
-> TypeRep (a :: k)
TrApp :: forall k1 k2 (a :: k1 -> k2) (b :: k1).
{
trAppFingerprint :: {-# UNPACK #-} !Fingerprint
, trAppFun :: !(TypeRep (a :: k1 -> k2))
, trAppArg :: !(TypeRep (b :: k1))
, trAppKind :: !(TypeRep k2) }
-> TypeRep (a b)
TrFun :: forall (r1 :: RuntimeRep) (r2 :: RuntimeRep)
(a :: TYPE r1) (b :: TYPE r2).
{
trFunFingerprint :: {-# UNPACK #-} !Fingerprint
, trFunArg :: !(TypeRep a)
, trFunRes :: !(TypeRep b) }
-> TypeRep (a -> b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment