Comment detail
法演算 (Nested Flatten)This comment is reply for 4948 nobsun: 依存型風に書いてみました.法は型で与えま...(法演算). Go to thread root.
Haskell での 0 とか 1 などの整数表記リテラルの型を調べると、 % ghci GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Prelude> :type 0 0 :: (Num t) => t Prelude> :type 1 1 :: (Num t) => t のように Numクラスのインスタンスである型になります。 ということは、Numクラスのインスタンスであると宣言された型が 出現するべきだと型推論されたところで表れた整数表記リテラルは 当該の型であること認識できるというわけです。この場合 Modulo a b 型は、aがNatクラスのインスタンス、bがIntegralクラス のインスタンスである文脈でNumクラスのインスタンスであると宣言 されていますので、Modulo Ten Int やModulo Seven Int が来るべき 場所で整数表記リテラルが出現すれば、それぞれの型として解釈されます。





shiro
#4950()
Rating1/1=1.00
これはおもしろい。適切なinstance定義が与えてあれば、型推論によって1などのリテラルさえも後つけのModulo型と解釈させることができちゃうわけですね。duck typingみたいだなあ。