diff --git a/antiope-core.cabal b/antiope-core.cabal
--- a/antiope-core.cabal
+++ b/antiope-core.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 49d3954b7ca5d249a62dc367c7c8c2b64ef67819769acc7855ef3b3173072a0b
+-- hash: 283d080463823fa745cd70a4642bb852ee41c17005108c4b77166f8b3693637b
 
 name:           antiope-core
-version:        6.1.4
+version:        6.1.5
 description:    Please see the README on Github at <https://github.com/arbor/antiope#readme>
 category:       Services
 homepage:       https://github.com/arbor/antiope#readme
@@ -29,6 +29,7 @@
   exposed-modules:
       Antiope.Core
       Antiope.Core.Error
+      Antiope.Core.Internal.Show
       Antiope.Env
       Antiope.Orphans
   other-modules:
@@ -49,6 +50,7 @@
     , monad-logger
     , mtl
     , resourcet
+    , text
     , transformers
     , unliftio-core
   default-language: Haskell2010
@@ -75,6 +77,7 @@
     , monad-logger
     , mtl
     , resourcet
+    , text
     , transformers
     , unliftio-core
   default-language: Haskell2010
diff --git a/src/Antiope/Core/Internal/Show.hs b/src/Antiope/Core/Internal/Show.hs
new file mode 100644
--- /dev/null
+++ b/src/Antiope/Core/Internal/Show.hs
@@ -0,0 +1,10 @@
+module Antiope.Core.Internal.Show
+  ( tshowNum
+  ) where
+
+import Data.Text (Text)
+
+import qualified Data.Text as T
+
+tshowNum :: (Num a, Show a) => a -> Text
+tshowNum = T.pack . show
