diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs
index f119cd6097e4e88a59a2a592e1058b128987b106..85fcd6c7e6c84a20f387451b5b9ed5de675cd537 100644
--- a/src/Quasar/Observable.hs
+++ b/src/Quasar/Observable.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE ViewPatterns #-}
 
 module Quasar.Observable (
@@ -94,16 +93,6 @@ observeFixed observable callback = fixIO $ \disposable -> observe observable (ca
 type ObservableCallback v = ObservableMessage v -> IO ()
 
 
-instance IsRetrievable v o => IsRetrievable v (IO o) where
-  retrieve :: HasResourceManager m => IO o -> m (Task v)
-  retrieve = retrieve <=< liftIO
-
-instance IsObservable v o => IsObservable v (IO o) where
-  observe :: IO o -> (ObservableMessage v -> IO ()) -> IO Disposable
-  observe getObservable callback = do
-    observable <- getObservable
-    observe observable callback
-
 
 -- | Existential quantification wrapper for the IsObservable type class.
 data Observable v = forall o. IsObservable v o => Observable o
@@ -221,7 +210,6 @@ instance IsObservable r (BindObservable r) where
               (\currentKey -> when (Just key == currentKey) $ callback x)
 
 
-
 data CatchObservable e r = Exception e => CatchObservable (Observable r) (e -> Observable r)
 
 instance IsRetrievable r (CatchObservable e r) where