diff --git a/src/Waterdeep/Types.hs b/src/Waterdeep/Types.hs index 20be86a..4899cd7 100644 --- a/src/Waterdeep/Types.hs +++ b/src/Waterdeep/Types.hs @@ -312,9 +312,13 @@ instance Monad Waterdeep where (Waterdeep m) >>= f = Waterdeep (m >>= unWaterdeep . f) fail = Waterdeep . fail +instance Alternative Waterdeep where + empty = Waterdeep empty + Waterdeep m <|> Waterdeep n = Waterdeep (m <|> n) + instance MonadPlus Waterdeep where - mzero = Waterdeep mzero - (Waterdeep m) `mplus` (Waterdeep n) = Waterdeep (m `mplus` n) + mzero = empty + mplus = (<|>) instance MonadState WaterdeepState Waterdeep where state = Waterdeep . lift . state