 
            
            
            
            
                23 May
                
                    2008
                
            
            
                23 May
                
                '08
                
            
            
            
        
    
                9:41 p.m.
            
        G'day all.
Quoting Don Stewart 
This is Haskell, we should use Maybe.
This is Haskell, more abstract is good. I do agree, though, that Monad is arguably the wrong abstraction. Something like this would arguably be better: class (Functor f) => Fail f where return :: a -> f a fail :: String -> f a (And yes, the String is arguably important; Maybe doesn't give you that.) Cheers, Andrew Bromage