21 Dec
                
                    2016
                
            
            
                21 Dec
                
                '16
                
            
            
            
        
    
                3:56 p.m.
            
        On Tue, Dec 20, 2016 at 3:53 AM, Chris Smith 
Hey everyone,
Can someone explain to me by GHC 8 causes list comprehension bindings to desugar to use 'fail', when RebindableSyntax is enabled in GHC 8? Note that I do not have monad comprehensions enabled. If I define fail, everything works (apparently regardless of what I define fail to do?!?), but I'd like to understand why it's necessary.
Perhaps fail is used by the translation for guards. I don’t have a working
GHC right now, but what happens if you define fail = error and evaluate [ x
| x <- “a", False]?
-- 
Dave Menendez