我想知道GHCi(或其他地方)中是否存在用于从任意类型表达式扩展类型同义词和族的功能.
例如,如果我有这些类型,
data A = A
data B = B
data F a = F a
data G a = G a
data H a b = H a b
type S a b = H (F a) (G b)
type T a = S (a) (H B a)
type family R a :: *
type instance R (H a b) = H b a
Run Code Online (Sandbox Code Playgroud)
那么我希望能够在ghci会话中获得这种输出.
> :t undefined :: T (S B A)
undefined :: T (S B A) …Run Code Online (Sandbox Code Playgroud)