Skip to content

Let in do-notation with braces does not parse

According to the the syntax at https://www.haskell.org/onlinereport/haskell2010/haskellch10.html the following do-notation should parse:

do {let x = 4; print x}

But it doesn't.

do {let x = 4 in print x}

parses OK. Doesn't look like a new bug, I tried with GHC 7.8 and same result. Googling "haskell do {let ds; es} = let ds in do {es}" also shows quite a lot of people taught Haskell that way, so maybe it once worked?

Trac metadata
Trac field Value
Version 8.0.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information