From 1cab4a96260fffa1356febfcdae342a00acf9dde Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Thu, 24 Feb 2022 20:48:22 +0100 Subject: [PATCH] Add Monad instance for ObservableMessage --- src/Quasar/Observable.hs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs index ac809fd..120051f 100644 --- a/src/Quasar/Observable.hs +++ b/src/Quasar/Observable.hs @@ -59,6 +59,11 @@ instance Applicative ObservableMessage where liftA2 _ _ (ObservableNotAvailable ex) = ObservableNotAvailable ex liftA2 _ _ ObservableLoading = ObservableLoading +instance Monad ObservableMessage where + (ObservableUpdate x) >>= fn = fn x + ObservableLoading >>= _ = ObservableLoading + (ObservableNotAvailable ex) >>= _ = ObservableNotAvailable ex + toObservableUpdate :: MonadThrow m => ObservableMessage a -> m (Maybe a) toObservableUpdate (ObservableUpdate value) = pure $ Just value -- GitLab