diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs
index eea49d59478ec70a33858ef3838adbd7a658134f..a0da732b4f9e06d575929fcfbb85ca1c115d7eed 100644
--- a/src/Quasar/Observable.hs
+++ b/src/Quasar/Observable.hs
@@ -62,11 +62,11 @@ instance Functor ObservableMessage where
 
 instance Applicative ObservableMessage where
   pure = ObservableUpdate
+  liftA2 fn (ObservableUpdate x) (ObservableUpdate y) = ObservableUpdate (fn x y)
   liftA2 _ (ObservableNotAvailable ex) _ = ObservableNotAvailable ex
-  liftA2 _ _ (ObservableNotAvailable ex) = ObservableNotAvailable ex
   liftA2 _ ObservableLoading _ = ObservableLoading
+  liftA2 _ _ (ObservableNotAvailable ex) = ObservableNotAvailable ex
   liftA2 _ _ ObservableLoading = ObservableLoading
-  liftA2 fn (ObservableUpdate x) (ObservableUpdate y) = ObservableUpdate (fn x y)
 
 
 toObservableUpdate :: MonadThrow m => ObservableMessage a -> m (Maybe a)