shower-0.1: lib/Shower/Class.hs
module Shower.Class where
-- A tagless final encoding for a result builder (ShowS, Doc, Html, etc).
--
-- Note that 'showerStringLit' and 'showerCharLit' take exact uninterpreted
-- strings to avoid losing information (e.g. "\n" vs. "\10").
class Shower a where
-- { x = 24, y = 42 }
showerRecord :: [(a, a)] -> a
-- [1, 2, 3]
showerList :: [a] -> a
-- (1, 2, 3)
showerTuple :: [a] -> a
-- "hello, (world)"
showerStringLit :: String -> a
-- '('
showerCharLit :: String -> a
-- variable names, numeric literals, etc
showerAtom :: String -> a
-- whitespace-separated
showerSpace :: [a] -> a