 
            
            
            
            
                7 Jan
                
                    2015
                
            
            
                7 Jan
                
                '15
                
            
            
            
        
    
                10:40 a.m.
            
        Apparently, there was an issue with my last messages about this for some people, so here's the idea again: We could generalize Control.Exception.evaluate to evaluate :: PrimMonad m => a -> m a evaluate a = primitive (\s -> seq# a s) and then export it from Control.Monad.Primitive as well, which seems to me a much more natural place for it. The only challenge is that the PrimMonad class would need to be moved to base.