この型シグネチャを持つ関数を書きたい:
getTypeRep :: Typeable a => t a -> TypeRep
TypeRep は、 taではなくaの型表現になります。つまり、コンパイラは、任意の呼び出しサイトで [ getTypeRepに] の具体的な型を持つ正しい型表現を自動的に返す必要があります。
いくつかのコンテキストを追加するために、「動的型」データ型を作成したいと思います。これは、最上位の型を記憶するが、そのパラメーターは記憶しないというひねりを加えたものです。たとえば、MyClass aをDynamic MyClassに変換したい場合、上記の関数を使用して、型パラメーターaの表現を格納するDynamic MyClassのインスタンスを作成します。