Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Text.Printf is a useful module, but due to the typeclass hacks it uses, it can be hard to tell if the format string you wrote is well-formed or not. This package provides a mechanism to create formatting functions at compile time.
Note that, to maintain consistency with other printf implementations, negative ints that are printed as unsigned will "underflow". (Text.Printf does this too.)
>>>
[s|%u|] (-1 :: Int32)
WAS "4294967295" NOW Not in scope: type constructor or class `Int32'
Thus, any time you want to print a number using the unsigned, octal, or hex specifiers, your input must be an instance of Bounded.
Synopsis
- s :: QuasiQuoter
- t :: QuasiQuoter
- p :: QuasiQuoter
- hp :: QuasiQuoter
Documentation
s :: QuasiQuoter Source #
[s
|Hello, %s! (%d people greeted)|] :: ... ->String
This formatter follows the guidelines listed
here, except for
%n
(store number of printed characters) for obvious
reasons.
%c ::Char
%s ::String
%q ::Text
-- lazy text %Q ::Text
-- strict text -- datatypes with Show instances %? ::Show
a => a -- signed integer types %d, %i ::Integral
i => i -- unsigned integer types %u :: (Bounded
i,Integral
i) => i %o :: (Bounded
i,Integral
i) => i %x, %X :: (Bounded
i,Integral
i) => i -- floats %a, %A ::RealFloat
f => f %e, %E ::RealFloat
f => f %f, %F ::RealFloat
f => f %g, %G ::RealFloat
f => f %p ::Ptr
a
p :: QuasiQuoter Source #