diff --git a/src/lib/Qd/Observable.hs b/src/lib/Qd/Observable.hs index fcf386978ab967a56bb93cfb5fee584c7e9db45a..95913cab7ca88c770f68cee362b4122c37d64492 100644 --- a/src/lib/Qd/Observable.hs +++ b/src/lib/Qd/Observable.hs @@ -46,7 +46,9 @@ instance Disposable SubscriptionHandle where dispose = unsubscribe instance Disposable RegistrationHandle where dispose = deregister - +instance Disposable a => Disposable (Maybe a) where + dispose = mapM_ dispose + class Observable v o | o -> v where getValue :: o -> IO (ObservableState v) subscribe :: o -> (ObservableMessage v -> IO ()) -> IO SubscriptionHandle