- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
647 :デフォルトの名無しさん[sage]:2015/10/31(土) 14:45:40.36 ID:+eMHagJM - >>642
>>644 試しに forall master. をコメントアウトしてコンパイルしてみたら、下記の warning が出た。 Variable ‘master’ is implicitly quantified due to a context Use explicit forall syntax instead. This will become an error in GHC 7.12. In the type ‘YesodChat master => HandlerT Chat (HandlerT master IO) a’ In the declaration for type synonym ‘ChatHandler’ 出たのは warning だけで、コンパイル自体はできる。 ということは、局所的な forall ではないよね。 もしそうならエラーでコンパイルできないはず。 つまり、今のところは「この場合の forall の有無による意味の違いは無い」と解釈して問題ない、よね? まずいかな? 書籍ではたぶん、将来エラー扱いになる(し、今でも警告が出る)から今のうちに forall を明示的に書いておいたのだと思う。 だが、なんで将来エラー扱いになるのかが分からんな。 明示しないとどんな不都合が起こるんだろ。
|