16
GHCi(または他の場所)内に存在し、任意のタイプの式からタイプの同義語やファミリを拡張する機能があるのだろうかと思います。例えば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
が、私はGHCiのセッションでは、出力のこの種を取得できるようにしたいと思います。
> :t undefined :: T (S B A)
undefined :: T (S B A) :: T (S B A)
> :texpand undefined :: T (S B A)
undefined :: T (S B A) :: H (F ((H (F B) (G A)))) (G (H B (H (F B) (G A))))
> :texpand undefined :: R (T (S B A))
undefined :: R (T (S B A)) :: H (G (H B (H (F B) (G A)))) (F ((H (F B) (G A))))
私の知る限り、GHCiのは、実際に:texpand
コマンドのようなものを提供していない、と私はそれがとにかくその情報のための最高のインターフェイスになることはよく分かりません。しかし、拡張型はGHCから何らかの形で抽出される可能性が高く、対話的にそれらを見ることができればと思っています。
GHCiへの今後の追加についてのハック、ドキュメントリンク、投機的な議論はすべて歓迎します。
。 (4または6、忘れてしまいます) –
これはGHC 8.0.2で私にとってはうまくいきません。これは、タイプエイリアスをそのまま展開してそのまま出力します。 – Hjulle
GHC 8.2.1と同じ問題があります –