@@ -117,17 +117,25 @@ instance Functor Result where
117instance Monad IResult where
117instance Monad IResult where
118 return = ISuccess
118 return = ISuccess
119 {-# INLINE return #-}
119 {-# INLINE return #-}
120 ISuccess a >>= k = k a
121 ISuccess a >>= k = k a
121 IError path err >>= _ = IError path err
122 IError path err >>= _ = IError path err
122 {-# INLINE (>>=) #-}
123 {-# INLINE (>>=) #-}
125+ fail err = IError [] err
124instance Monad Result where
128instance Monad Result where
125 return = Success
129 return = Success
126 {-# INLINE return #-}
130 {-# INLINE return #-}
127 Success a >>= k = k a
132 Success a >>= k = k a
128 Error err >>= _ = Error err
133 Error err >>= _ = Error err
129 {-# INLINE (>>=) #-}
134 {-# INLINE (>>=) #-}
136+ fail err = Error err
131instance Applicative IResult where
139instance Applicative IResult where
132 pure = return
140 pure = return
133 {-# INLINE pure #-}
141 {-# INLINE pure #-}