Evaluating type expressions in GHCi
Sean Leather
leather at cs.uu.nl
Tue Sep 20 12:34:08 CEST 2011
I would like to ask GHCi for the type that a type expression will evaluate
to, once all definitions of type synonyms and (when possible) type families
have been inlined.
It appears that I can do some part of this for type T by using ":t undefined
:: T":
type family F a
type instance F Int = Bool
type instance F Bool = Int
type instance F (a, b) = (F a, F b)
ghci> :t undefined :: F (Int, Bool)
undefined :: F (Int, Bool) :: (Bool, Int)
I also get what I expect here:
ghci> :t undefined :: F (a, Bool)
undefined :: F (a, Bool) :: (F a, Int)
Of course, this doesn't work on types of kinds other than *.
Is it possible and worth having another GHCi command to perform this
operation for any types? It could be the type analogue to :t such that it
evaluates the type and gives its kind.
Regards,
Sean
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20110920/13582ad2/attachment.htm>
More information about the Glasgow-haskell-users
mailing list