11
私の最初の質問は書くためにそこの方法ですT
逆単射型家族
type family T a = b | b -> a
私は単射型家族がいるとしましょう:
type family T' = the inverse of T
T
のすべてのインスタンスを繰り返すことなく、しかし、逆に。
は、このようなこと:これは動作するはずのように両方T
とT'
が単射あるようT (X1 a (T' a)) = a
他を働かせて機械的である一方与えられた、と思われます。
とにかく書くにはT'
?適した拡張子を持つ
なりません ' 〜T b'仕事? – mb14
明らかに 'type Tinv b = a'は拒否されます。なぜなら' tinv'の引数にtyvar 'a'が記述されなければならないからです。 – chi
fundepを明示的な型のファミリアプリケーションに変換することは不可能ですが、@ mb14で述べたように、型シグネチャで等号制約を使用すると逆関数を計算できます。 (a〜T b)=>プロキシa→プロキシb、または同等にはプロキシ(T b)→プロキシbである。 – user2407038