Search code examples
haskellghcitype-families

Is it possible to display the results of applying a Haskell type family function?


For example, if I have these weird types:

{-# LANGUAGE TypeFamilies #-}
type family WeirdFamily a
type instance WeirdFamily () = Int
type instance WeirdFamily (a, b) = (a, WeirdFamily b)

Can I display (e.g. in GHCi) the result of WeirdFamily (Bool, (Char, ())) by typing something like:

:t WeirdFamily (Bool, (Char, ()))

into GHCi?


Solution

  • Use kind!.

    :kind! WeirdFamily (Bool, (Char, ()))
    WeirdFamily (Bool, (Char, ())) :: *
    = (Bool, (Char, Int))