diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for PyF
 
+## 0.9.0.0 -- 2019-12-29
+
+- Any type with `Show` instance can be formatted using `:s` formatter. For example, `[fmt|hello {(True, 10):s}|]`. This breaks compatibility because previous version of PyF was generating an error when try to format to string anything which was not a string, now it accepts roughly anything (with a `Show` instance).
+
 ## 0.8.1.2 -- 2019-11-08
 
 - Bump megaparsec bounds
diff --git a/PyF.cabal b/PyF.cabal
--- a/PyF.cabal
+++ b/PyF.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                PyF
-version:             0.8.1.2
+version:             0.9.0.0
 synopsis: Quasiquotations for a python like interpolated string formater
 description: Quasiquotations for a python like interpolated string formater.
 license:             BSD-3-Clause
diff --git a/Readme.md b/Readme.md
--- a/Readme.md
+++ b/Readme.md
@@ -25,7 +25,7 @@
 - Sign handling, to display or not the `+` for positive number
 - Number grouping
 - Floating point representation
-- The interpolated value can be any Haskell expression
+- The interpolated value can be any Haskell expression.
 
 You will need the extension `QuasiQuotes`, enable it with `{-# LANGUAGE QuasiQuotes #-}` in top of your source file or with `:set -XQuasiQuotes` in your `ghci` session. `ExtendedDefaultRules` and `OverloadedStrings` may be more convenient.
 
diff --git a/src/PyF/Class.hs b/src/PyF/Class.hs
--- a/src/PyF/Class.hs
+++ b/src/PyF/Class.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DefaultSignatures #-}
+{-# LANGUAGE UndecidableInstances #-}
 module PyF.Class where
 
 import Data.Int
@@ -56,3 +57,4 @@
 instance PyFToString String where pyfToString = id
 instance PyFToString LText.Text where pyfToString = LText.unpack
 instance PyFToString SText.Text where pyfToString = SText.unpack
+instance {-# OVERLAPPABLE #-} Show t => PyFToString t where pyfToString = show
diff --git a/test/SpecFail.hs b/test/SpecFail.hs
--- a/test/SpecFail.hs
+++ b/test/SpecFail.hs
@@ -170,7 +170,6 @@
       failCompile "{truncate' number:e}"
       failCompile "{truncate' number:E}"
       failCompile "{truncate' number:%}"
-      failCompile "{truncate number:s}"
 
     describe "number with precision" $ do
       failCompile "{truncate number:.3d}"
@@ -184,7 +183,6 @@
       failCompile "{number:x}"
       failCompile "{number:X}"
       failCompile "{number:d}"
-      failCompile "{number:s}"
 
     -- XXX: this are not failing for now, it should be fixed
     xdescribe "not specified" $ do
@@ -221,7 +219,6 @@
         ]
 
     describe "Wrong type" $ do
-      failCompile "{True:s}"
       failCompile "{True}"
       failCompile "{True:f}"
       failCompile "{True:d}"
