This Haskell library provides string interpolation in quasiquotes, allowing you to build strings like this:
animal = "snake"
location = "a tree"
[exon|#{animal} in #{location}|]
-- "snake in a tree"
Please consult hackage for the full documentation.
Each step of the process is customizable based on the result type of the quote, making it possible to construct strings
for arbitrary types.
For example, String -> String
is the type used by showsPrec
, which can be a bit of a hassle to write:
data Record =
Record {
number :: Int,
maybeNumber :: Maybe Int,
value :: Value
}
instance Show Record where
showsPrec d Record {..} =
showParen (d > 10) [exon|Record #{showsPrec 11 number} #{showsPrec 11 maybeNumber} #{showsPrec 11 value}|]