diff --git a/src/Quasar/Awaitable.hs b/src/Quasar/Awaitable.hs
index 15399c4c95d219072d1420b1eeaf092a6f1d4cfb..709462dd0afd82464b3d6a743431e1b132f1a20d 100644
--- a/src/Quasar/Awaitable.hs
+++ b/src/Quasar/Awaitable.hs
@@ -103,11 +103,14 @@ instance IsAwaitable r (Awaitable r) where
   cacheAwaitable (Awaitable x) = cacheAwaitable x
   toAwaitable = id
 
+instance MonadAwait Awaitable where
+  await = toAwaitable
+
 instance Functor Awaitable where
   fmap fn (Awaitable x) = fnAwaitable $ fn <$> runAwaitable x
 
 instance Applicative Awaitable where
-  pure value = fnAwaitable $ pure value
+  pure = successfulAwaitable
   liftA2 fn (Awaitable fx) (Awaitable fy) = fnAwaitable $ liftA2 fn (runAwaitable fx) (runAwaitable fy)
 
 instance Monad Awaitable where
@@ -158,6 +161,7 @@ instance IsAwaitable r (CompletedAwaitable r) where
 completedAwaitable :: Either SomeException r -> Awaitable r
 completedAwaitable result = toAwaitable $ CompletedAwaitable result
 
+-- | Alias for `pure`.
 successfulAwaitable :: r -> Awaitable r
 successfulAwaitable = completedAwaitable . Right