Haskell let-why-error中的许多定义

Haskell let-why-error中的许多定义,haskell,Haskell,看看它: e >>= f = StOut (\n -> let (a, n1, s1) = (unStOut e) n (b, n2, s2) = (unStOut (f a)) n1 in (b, n2, s1++s2)) ghci抱怨:parse error on input'=' 然而,对于 e >>= f = StOut (\

看看它:

e >>= f = StOut (\n ->  let     (a, n1, s1) = (unStOut e) n
                                (b, n2, s2) = (unStOut (f a)) n1
                        in      (b, n2, s1++s2))
ghci抱怨:
parse error on input'='
然而,对于

e >>= f = StOut (\n ->  let     (a, n1, s1) = (unStOut e) n
                            in  (a, n1, s1))
ghci喜欢:)
错误在哪里?

问题可能不在代码片段中:lambdabot接受
@letlpaste 4789689228613124096
很好(加载到其ghci中)。请尝试粘贴导致此错误的整个代码文件。

我认为这不是语法错误。您使用的是哪个版本的GHC?