HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Moduleturtle-1.6.2Haskell2010

Turtle.Format

Minimalist implementation of type-safe formatted strings, borrowing heavily from the implementation of the formatting package.

Example use of this module:

Example3 expressions
:set -XOverloadedStringsimport Turtle.Formatformat ("This is a "%s%" string that takes "%d%" arguments") "format" 2"This is a format string that takes 2 arguments"

A Format string that takes no arguments has this type:

"I take 0 arguments" :: Format r r

format "I take 0 arguments" :: Text
Example1 expression
format "I take 0 arguments""I take 0 arguments"

A Format string that takes one argument has this type:

"I take "%d%" arguments" :: Format r (Int -> r)

format ("I take "%d%" argument") :: Int -> Text
Example1 expression
format ("I take "%d%" argument") 1"I take 1 argument"

A Format string that takes two arguments has this type:

"I "%s%" "%d%" arguments" :: Format r (Text -> Int -> r)

format ("I "%s%" "%d%" arguments") :: Text -> Int -> Text
Example1 expression
format ("I "%s%" "%d%" arguments") "take" 2"I take 2 arguments"
  • 1 type
  • 18 values
  • Packageturtle-1.6.2
  • Exports19
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceFormat.hs

Format

6 declarations
valueformat :: Format Text r -> r
#

Convert a Format string to a print function that takes zero or more typed arguments and returns a Text string

valueprintf :: MonadIO io => Format (io ()) r -> r
#

Print a Format string to standard output (without a trailing newline)

Example1 expression
printf ("Hello, "%s%"!\n") "world"Hello, world!
valueeprintf :: MonadIO io => Format (io ()) r -> r
#

Print a Format string to standard err (without a trailing newline)

Example1 expression
eprintf ("Hello, "%s%"!\n") "world"Hello, world!

Parameters

12 declarations
valuew :: Show a => Format r (a -> r)
#

Format any Showable value

Example1 expression
format w True"True"
valued :: Integral n => Format r (n -> r)
#

Format an Integral value as a signed decimal

Example2 expressions
format d 25"25"format d (-25)"-25"
valueu :: Format r (Word -> r)
#

Format a Word value as an unsigned decimal

Example1 expression
format u 25"25"
valueo :: Format r (Word -> r)
#

Format a Word value as an unsigned octal number

Example1 expression
format o 25"31"
valuex :: Format r (Word -> r)
#

Format a Word value as an unsigned hexadecimal number (without a leading "0x")

Example1 expression
format x 25"19"
valuef :: Format r (Double -> r)
#

Format a Double using decimal notation with 6 digits of precision

Example1 expression
format f 25.1"25.100000"
valuee :: Format r (Double -> r)
#

Format a Double using scientific notation with 6 digits of precision

Example1 expression
format e 25.1"2.510000e1"
valueg :: Format r (Double -> r)
#

Format a Double using decimal notation for small exponents and scientific notation for large exponents

Example3 expressions
format g 25.1"25.100000"format g 123456789"1.234568e8"format g 0.00000000001"1.000000e-11"

Utilities

1 declaration
valuerepr :: (Show a, IsString text) => a -> text
#

Convert a Showable value to any type that implements IsString (such as Text)

Example1 expression
repr (1,2)"(1,2)"