diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -0,0 +1,7 @@
+# Unreleased
+
+# 0.2.0.0
+
+* Add safe, `Maybe` returning, versions of the methods of `Integral`.
+* Hide constructors of effect GADTs.
+* Reexport `Data.Text.Lazy.Builder`.
diff --git a/incipit-base.cabal b/incipit-base.cabal
--- a/incipit-base.cabal
+++ b/incipit-base.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           incipit-base
-version:        0.1.0.3
+version:        0.2.0.0
 synopsis:       A Prelude for Polysemy – Base Reexports
 description:    See <https://hackage.haskell.org/package/incipit-base/docs/Incipit-Prelude.html>
 category:       Prelude
@@ -31,6 +31,8 @@
       Incipit.Base
       Incipit.Debug
       Incipit.Either
+      Incipit.Fixed
+      Incipit.Integral
       Incipit.Libraries
       Incipit.List
       Incipit.Misc
@@ -62,6 +64,7 @@
     , Data.Text
     , Data.Text.IO
     , Data.Text.Lazy
+    , Data.Text.Lazy.Builder
     , Data.Text.Lazy.IO
     , Data.Text.Read
     , Data.Tree
diff --git a/lib/Incipit/Base.hs b/lib/Incipit/Base.hs
--- a/lib/Incipit/Base.hs
+++ b/lib/Incipit/Base.hs
@@ -7,6 +7,7 @@
   module Control.Exception,
   module Control.Monad,
   module Control.Monad.Fail,
+  module Control.Monad.IO.Class,
   module Data.Bifunctor,
   module Data.Bits,
   module Data.Bool,
@@ -45,6 +46,8 @@
   module GHC.Show,
   module GHC.Stack,
   module GHC.TypeLits,
+  module Incipit.Fixed,
+  module Incipit.Integral,
   module Numeric.Natural,
   module System.IO,
 ) where
@@ -83,6 +86,7 @@
   (>=>),
   )
 import Control.Monad.Fail (MonadFail (..))
+import Control.Monad.IO.Class
 import Data.Bifunctor (Bifunctor (..))
 import Data.Bits (toIntegralSized, xor)
 import Data.Bool (Bool (..), bool, not, otherwise, (&&), (||))
@@ -180,7 +184,7 @@
 import GHC.OverloadedLabels (IsLabel (..))
 import GHC.Real (
   Fractional (..),
-  Integral (..),
+  Integral (toInteger),
   Ratio,
   Rational,
   Real (..),
@@ -201,3 +205,6 @@
 import GHC.TypeLits hiding (ErrorMessage (Text))
 import Numeric.Natural (Natural)
 import System.IO (FilePath, IO, print, putStr, putStrLn)
+
+import Incipit.Fixed
+import Incipit.Integral
diff --git a/lib/Incipit/Debug.hs b/lib/Incipit/Debug.hs
--- a/lib/Incipit/Debug.hs
+++ b/lib/Incipit/Debug.hs
@@ -4,6 +4,7 @@
 module Incipit.Debug where
 
 import qualified Data.Text as Text
+import Data.Text (Text)
 import GHC.Stack (CallStack, SrcLoc (..), callStack, getCallStack)
 import System.IO.Unsafe (unsafePerformIO)
 
@@ -21,7 +22,6 @@
   )
 import Incipit.List (last)
 import Incipit.String.Conversion (ToString (toString), ToText (toText), show)
-import Data.Text (Text)
 
 srcLoc :: CallStack -> SrcLoc
 srcLoc = \case
diff --git a/lib/Incipit/Fixed.hs b/lib/Incipit/Fixed.hs
new file mode 100644
--- /dev/null
+++ b/lib/Incipit/Fixed.hs
@@ -0,0 +1,36 @@
+module Incipit.Fixed where
+
+import qualified Data.Fixed as Fixed
+import Data.Maybe (Maybe)
+import GHC.Real (Integral, Real)
+
+import Incipit.Integral (safeOp)
+
+-- | Generalisation of 'div' to any instance of 'Real'
+div' ::
+  Real a =>
+  Integral b =>
+  a ->
+  a ->
+  Maybe b
+div' =
+  safeOp Fixed.div'
+
+-- | Generalisation of 'divMod' to any instance of 'Real'
+divMod' ::
+  Real a =>
+  Integral b =>
+  a ->
+  a ->
+  Maybe (b, a)
+divMod' =
+  safeOp Fixed.divMod'
+
+-- | Generalisation of 'mod' to any instance of 'Real'
+mod' ::
+  Real a =>
+  a ->
+  a ->
+  Maybe a
+mod' =
+  safeOp Fixed.mod'
diff --git a/lib/Incipit/Integral.hs b/lib/Incipit/Integral.hs
new file mode 100644
--- /dev/null
+++ b/lib/Incipit/Integral.hs
@@ -0,0 +1,82 @@
+module Incipit.Integral where
+
+import Data.Maybe (Maybe (Just, Nothing))
+import qualified GHC.Real as Real
+import GHC.Real (Integral, Real)
+
+safeOp ::
+  Real a =>
+  (a -> a -> b) ->
+  a ->
+  a ->
+  Maybe b
+safeOp op n = \case
+  0 ->
+    Nothing
+  d ->
+    Just (op n d)
+{-# inline safeOp #-}
+
+-- | integer division truncated toward zero
+quot ::
+  Integral a =>
+  a ->
+  a ->
+  Maybe a
+quot =
+  safeOp Real.quot
+{-# inline quot #-}
+
+-- | integer remainder, satisfying
+--
+-- > (x `quot` y)*y + (x `rem` y) == x
+rem ::
+  Integral a =>
+  a ->
+  a ->
+  Maybe a
+rem =
+  safeOp Real.rem
+{-# inline rem #-}
+
+-- | integer division truncated toward negative infinity
+div ::
+  Integral a =>
+  a ->
+  a ->
+  Maybe a
+div =
+  safeOp Real.div
+{-# inline div #-}
+
+-- | integer modulus, satisfying
+--
+-- > (x `div` y)*y + (x `mod` y) == x
+mod ::
+  Integral a =>
+  a ->
+  a ->
+  Maybe a
+mod =
+  safeOp Real.mod
+{-# inline mod #-}
+
+-- | simultaneous 'quot' and 'rem'
+quotRem ::
+  Integral a =>
+  a ->
+  a ->
+  Maybe (a, a)
+quotRem =
+  safeOp Real.quotRem
+{-# inline quotRem #-}
+
+-- | simultaneous 'div' and 'mod'
+divMod ::
+  Integral a =>
+  a ->
+  a ->
+  Maybe (a, a)
+divMod =
+  safeOp Real.divMod
+{-# inline divMod #-}
diff --git a/lib/Incipit/Misc.hs b/lib/Incipit/Misc.hs
--- a/lib/Incipit/Misc.hs
+++ b/lib/Incipit/Misc.hs
@@ -46,7 +46,7 @@
 
 -- |Default to using the strict version since the lazy one is so controversial.
 foldl ::
-  ∀ b t a .
+  ∀ t b a .
   Foldable t =>
   (b -> a -> b) ->
   b ->
