diff --git a/lib/Prelate.hs b/lib/Prelate.hs
--- a/lib/Prelate.hs
+++ b/lib/Prelate.hs
@@ -1,3 +1,4 @@
+-- |A Polysemy Prelude with some basic libraries
 module Prelate (module Prelate.Prelude) where
 
 import Prelate.Prelude
diff --git a/lib/Prelate/Atomic.hs b/lib/Prelate/Atomic.hs
--- a/lib/Prelate/Atomic.hs
+++ b/lib/Prelate/Atomic.hs
@@ -1,9 +1,11 @@
+-- |'AtomicState' combinators for lenses
 module Prelate.Atomic where
 
 import Incipit (AtomicState, Member, Sem, atomicGets, atomicModify')
 import Lens.Micro (Lens', (.~))
 import Lens.Micro.Extras (view)
 
+-- |Modify the focus of a lens in 'AtomicState'.
 atomicSet ::
   Member (AtomicState s) r =>
   Lens' s a ->
@@ -12,6 +14,7 @@
 atomicSet l a =
   atomicModify' (l .~ a)
 
+-- |View the focus of a lens in 'AtomicState'.
 atomicView ::
   Member (AtomicState s) r =>
   Lens' s a ->
diff --git a/lib/Prelate/Control/Applicative.hs b/lib/Prelate/Control/Applicative.hs
new file mode 100644
--- /dev/null
+++ b/lib/Prelate/Control/Applicative.hs
@@ -0,0 +1,12 @@
+-- |Applicative combinators
+module Prelate.Control.Applicative where
+
+-- |Create a pair from two applicative values.
+pairA ::
+  Applicative f =>
+  f a ->
+  f b ->
+  f (a, b)
+pairA fa fb =
+  (,) <$> fa <*> fb
+{-# inline pairA #-}
diff --git a/lib/Prelate/Control/Monad.hs b/lib/Prelate/Control/Monad.hs
--- a/lib/Prelate/Control/Monad.hs
+++ b/lib/Prelate/Control/Monad.hs
@@ -1,3 +1,4 @@
+-- |Monad reexports from @extra@ and some combinators
 module Prelate.Control.Monad (
   module Prelate.Control.Monad,
   module Control.Monad.Extra,
diff --git a/lib/Prelate/Data/List.hs b/lib/Prelate/Data/List.hs
new file mode 100644
--- /dev/null
+++ b/lib/Prelate/Data/List.hs
@@ -0,0 +1,6 @@
+-- |List reexports from @extra@
+module Prelate.Data.List (
+  module Data.List.Extra,
+) where
+
+import Data.List.Extra (firstJust)
diff --git a/lib/Prelate/Data/Maybe.hs b/lib/Prelate/Data/Maybe.hs
--- a/lib/Prelate/Data/Maybe.hs
+++ b/lib/Prelate/Data/Maybe.hs
@@ -1,3 +1,4 @@
+-- |Maybe combinators
 module Prelate.Data.Maybe where
 
 -- |Return 'Just' if the condition is 'True'.
diff --git a/lib/Prelate/Json.hs b/lib/Prelate/Json.hs
--- a/lib/Prelate/Json.hs
+++ b/lib/Prelate/Json.hs
@@ -1,3 +1,4 @@
+-- | Aeson TH functions
 module Prelate.Json (
   json,
   unaryJson,
@@ -8,7 +9,6 @@
 import Data.Generics.Labels ()
 import Data.List (dropWhileEnd)
 import qualified Language.Haskell.TH.Syntax as TH
-
 
 -- |Aeson codec options that remove leading and trailing underscores.
 basicOptions :: Aeson.Options
diff --git a/lib/Prelate/Prelude.hs b/lib/Prelate/Prelude.hs
--- a/lib/Prelate/Prelude.hs
+++ b/lib/Prelate/Prelude.hs
@@ -1,8 +1,11 @@
+-- |A Polysemy Prelude with some basic libraries
 module Prelate.Prelude (
   module Incipit,
   module Prelate.Prelude,
   module Prelate.Atomic,
+  module Prelate.Control.Applicative,
   module Prelate.Control.Monad,
+  module Prelate.Data.List,
   module Prelate.Data.Maybe,
   module Prelate.Json,
   module Data.Aeson,
@@ -17,7 +20,9 @@
 import Lens.Micro.GHC (at)
 
 import Prelate.Atomic
+import Prelate.Control.Applicative
 import Prelate.Control.Monad
+import Prelate.Data.List
 import Prelate.Data.Maybe
 import Prelate.Json
 
diff --git a/lib/Process.hs b/lib/Process.hs
--- a/lib/Process.hs
+++ b/lib/Process.hs
@@ -1,3 +1,4 @@
+-- |Reexport of @polysemy-process@
 module Process (
   module Polysemy.Process
 ) where
diff --git a/prelate.cabal b/prelate.cabal
--- a/prelate.cabal
+++ b/prelate.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           prelate
-version:        0.1.0.0
+version:        0.2.0.0
 synopsis:       A Prelude
 description:    See https://hackage.haskell.org/package/prelate/docs/Prelate.html
 category:       Prelude
@@ -26,7 +26,9 @@
   exposed-modules:
       Prelate
       Prelate.Atomic
+      Prelate.Control.Applicative
       Prelate.Control.Monad
+      Prelate.Data.List
       Prelate.Data.Maybe
       Prelate.Json
       Prelate.Prelude
@@ -61,6 +63,7 @@
     , Data.Tree
     , Exon
     , Lens.Micro
+    , Lens.Micro.Extras
     , Lens.Micro.GHC
     , Polysemy.Chronos
     , Polysemy.Conc
@@ -146,13 +149,13 @@
     , exon >=1.0.1
     , extra >=1.7.10
     , generic-lens >=2.2
-    , incipit >=0.3
+    , incipit >=0.4
     , microlens >=0.4
     , microlens-ghc >=0.4
     , polysemy-chronos >=0.5
-    , polysemy-conc >=0.9
+    , polysemy-conc >=0.10
     , polysemy-log >=0.7
-    , polysemy-process >=0.9
+    , polysemy-process >=0.10
     , polysemy-resume >=0.5
     , polysemy-time >=0.5
     , template-haskell
