Haskellを書いていて、久しぶりに言語自体について不可解な挙動にぶち当たった。普段Haskellを書いていて、言語について「なんだこれ」と思うことはまずない。ところが、今回の疑問点は自分の理解を遥かに超える内容だった。最初はTwitterで質問してみたのだが、誰にも答えて頂けなかったので、stackoverflowで質問した。すると、見事に解決しまったので紹介する。 質問が長い。でも丁寧に書いたつもり。下の方に和訳も用意した。英語を読むのが面倒な人はそっちを読んでほしい。(自分が書いた英語を和訳するとか意味が分からんね。) http://stackoverflow.com/questions/25958007/ Why ghc changes the evaluation way due to the optimisation flag? Hello, I've encountered