2014-03-01から1ヶ月間の記事一覧

Monad Ambiguous type variable

例は IFPH 10章より。 data Term = Con Int | Div Term Term evalId (Con x) = return x evalId (Div t u) = do x <- evalId t y <- evalId u return (x `div` y) 上記は意図的に evalId の型を指定していない。型を調べると、 :t evalId evalId :: Monad …