ポリナレフという多相型システムに翻弄されるキャラを考えた。
設定: HM は一応使える。Type class instance resolution はイメージしか持っていない。なのに Monad transformer に出会ってしまった。眉間のτとλ皺が特徴。
やつを追う前に言っておくッ! おれは今やつのStateTをほんのちょっぴりだが体験した い…いや…体験したというよりはまったく理解を超えていたのだが…… ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『おれは奴の前で階層を lift していたと i|:!ヾ、_ノ/ u {:}//ヘ 思ったらいつのまにか lift が消えていた』 |リ u' τ ,ノ _,!V,ハ | /´fト、_{λ{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった… ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} ∀:::ヽ 頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ キャストだとかサブタイピングだとか / // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ ノ ' / ノ:::::`ー-、___/:::::// ヽ } _/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしいものの片鱗を味わったぜ…
ところで、ポリナレフの様に lift がいらないからすごいね楽ちいね、と思っていたら何故か型が通らない。一時間潰してインデントのせいだとわかりましたもうやだ:
f x = do y <- g x {- lift $ -} return $ h y -- lift がいらないぜ、ヒャッハー
ひどい… y <- g x return $ h y と認識されました。