format package:fmt

An old-style formatting function taken from text-format (see Data.Text.Format). Unlike format from Data.Text.Format, it can produce String and strict Text as well (and print to console too). Also it's polyvariadic:
>>> format "{} + {} = {}" 2 2 4
2 + 2 = 4
You can use arbitrary formatters:
>>> format "0x{} + 0x{} = 0x{}" (hexF 130) (hexF 270) (hexF (130+270))
0x82 + 0x10e = 0x190
A format string. This is intentionally incompatible with other string types, to make it difficult to construct a format string by concatenating string fragments (a very common way to accidentally make code vulnerable to malicious data). This type is an instance of IsString, so the easiest way to construct a query is to enable the OverloadedStrings language extension and then simply write the query in double quotes.
{-# LANGUAGE OverloadedStrings #-}

import Fmt

f :: Format
f = "hello {}"
The underlying type is Text, so literal Haskell strings that contain Unicode characters will be correctly handled.
A format string. This is intentionally incompatible with other string types, to make it difficult to construct a format string by concatenating string fragments (a very common way to accidentally make code vulnerable to malicious data). This type is an instance of IsString, so the easiest way to construct a query is to enable the OverloadedStrings language extension and then simply write the query in double quotes.
{-# LANGUAGE OverloadedStrings #-}

import Fmt

f :: Format
f = "hello {}"
The underlying type is Text, so literal Haskell strings that contain Unicode characters will be correctly handled.
Like format, but adds a newline.
Something like PrintfType in Text.Printf.
Render a format string and arguments to a Builder.