diff --git a/Shakefile.hs b/Shakefile.hs
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -16,11 +16,11 @@
 main :: IO ()
 main = shakeMain $ do
   let pats =
-        [ "stack.yaml"
+        [ "stack*.yaml"
         , "Shakefile.hs"
         , "src//*.hs"
         ]
-      pats' = delete "stack.yaml" pats
+      pats' = delete "stack*.yaml" pats
 
   -- | Haskell rules.
   --
diff --git a/preamble.cabal b/preamble.cabal
--- a/preamble.cabal
+++ b/preamble.cabal
@@ -1,5 +1,5 @@
 name: preamble
-version: 0.0.46
+version: 0.0.47
 cabal-version: >=1.22
 build-type: Simple
 license: MIT
diff --git a/src/Preamble/Prelude.hs b/src/Preamble/Prelude.hs
--- a/src/Preamble/Prelude.hs
+++ b/src/Preamble/Prelude.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
 
@@ -14,6 +15,7 @@
   , maybeThrowIO'
   , boolThrowIO
   , textFromString
+  , textShow
   , (-/-)
   , (-|-)
   , (-.-)
@@ -71,6 +73,14 @@
 --
 textFromString :: String -> Text
 textFromString = pack
+
+textShow :: Show a => a -> Text
+textShow =
+#if MIN_VERSION_basic_prelude(0,6,1)
+  textFromString . show
+#else
+  show
+#endif
 
 -- | </> for IsString.
 --
diff --git a/src/Preamble/Stats.hs b/src/Preamble/Stats.hs
--- a/src/Preamble/Stats.hs
+++ b/src/Preamble/Stats.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP               #-}
 {-# LANGUAGE FlexibleContexts  #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -23,11 +22,7 @@
 stats metric name value tags = do
   labels <- (<> tags) <$> view scLabels
   prefix <- ap (`bool` mempty) T.null <$> view scPrefix
-#if MIN_VERSION_basic_prelude(0,6,1)
-  let statsd = prefix <> name -:- textFromString (show value) -|- metric
-#else
-  let statsd = prefix <> name -:- show value -|- metric
-#endif
+  let statsd = prefix <> name -:- textShow value -|- metric
       tagged = T.intercalate "," $ flip map labels $ uncurry (-:-)
   stat <- view scStat
   liftIO $ stat $ encodeUtf8 $ bool (statsd -|- "#" <> tagged) statsd $ null labels
