次のタイプの理由を理解しようとしています。
(flip .) is: (a -> a1 -> b -> c) -> a -> b -> a1 -> c
まず、次のタイプです。
flip: is (a -> b -> c) -> b -> a -> c
(.): is (b -> c) -> (a -> b) -> a -> c
変数の名前を変更して、説明をより明確にするため、型は次のようになります。
flip: is (ax -> bx -> cx) -> bx -> ax -> cx
(.): is (by -> cy) -> (ay -> by) -> ay -> cy
次に、次のように置き換えてみます。
ax = (by -> cy)
bx = (ay -> by)
cx = ay -> cy
したがって、結果の型は (ay -> by) (by -> cy) -> ay -> cy となり、正しい結果とは異なります。
何か助けはありますか?
ありがとう、セバスチャン。