Skip to content

RebindableSyntax demands `fail` even when bindings are exhaustive

Reproducing example:

{-# LANGUAGE RebindableSyntax #-}
import Prelude hiding (fail)
main = do
  () <- pure ()
  pure ()
fail-scope.hs:4:3: error:
    Not in scope: ‘fail’
    Perhaps you meant ‘tail’ (imported from Prelude)
    Perhaps you want to remove ‘fail’ from the explicit hiding list
    in the import of ‘Prelude’ (fail-scope.hs:2:1-28).
  |
4 |   () <- pure ()
  |

This causes basement to break on 8.8.1.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information