úÎ!)i'M&      !"#$%Safe8=>?UV&¡pprecordConverts Record fields to BoxespprecordMerge accessor with fieldpprecordFinally reduce list of boxespprecord#Reduce Record to Box given a Format  Example:ÿÓ data List a = List { label :: String, val :: a, tail :: List a } | Nil deriving (Generic, Show) instance FQuery (List a) instance (Show a, Typeable a) => RFmt (List a) test = List "head" 3 $ List "mid" 4 $ List "tail" 5 $ Nil ghci> printBox $ format test dfltFmt label: "head" val: 3 tail: label: "mid" val: 4 tail: label: "tail" val: 5 tail: Nil pprecordEA Format is responsible for converting a Record into a formatted Box.  Example:y dfltFmt :: Format a dfltFmt = Format { arg = text , label = \a b -> text (a <> ":")  +& b , finally = vcat left } pprecordConverts Record fields to Boxes pprecordMerge accessor with field pprecordFinally reduce list of boxes pprecord>Accumulate Record values as [String] (in order of definition). pprecordAAccumulate Record accessors as [String] (in order of definition).pprecord1A table formatter which produces a top-down tablepprecord:Given String representation of accessor and value return bpprecord2Format Record a with up to n levels of recursivitypprecordMFormat Record a record fully expanding the data structure if it is recursivepprecordDFormat a list of RFmt instances as a table (no recursive expansion).  Example:ä data Employee = E { eId :: Int , name :: String , email :: String } deriving (Generic, Show) instance FQuery Employee instance RFmt Employee e1 = E 3 "John" "johnbelcher/foobar.xyz" e1 = E 3 "John" "johnbelcher1foobar.xyz" e2 = E 17 "Maria" "Mariafoobar1net.net" e3 = E 1 "Stanley" "stanleytheceo+foobar.org" e4 = E 2 "Kayla" "klabar/foo.com" e5 = E 4 "Sammy" "sammersfoobarˆfoo.bar" ghci> printBox $ formatTable [e1, e2, e3, e4, e5] tableFmt eId name email 3 "John" "johnbelcher-foobar.xyz" 17 "Maria" "Mariafoobar,net.net" 1 "Stanley" "stanleytheceo(foobar.org" 2 "Kayla" "klabar6foo.com" 4 "Sammy" "sammersfoobar@foo.bar"      &      !"#$%&pprecord-0.1.0.0-inplaceText.PrettyPrint.RecordsTableFmtargTlabelTfinallyTRFmtFormatarglabelfinallyVQueryvaluesFQueryfieldsdfltFmttableFmt simpleFmt formatUntilformat formatTable $fFQuery'M1 $fFQuery'M10 $fFQuery'M11 $fFQuery':*: $fFQuery'U1 $fFQuery'V1 $fFQuery'K1 $fVQuery'V1 $fVQuery'U1 $fVQuery'K1 $fVQuery':*: $fVQuery'M1 $fRFmt'V1 $fRFmt'U1 $fRFmt'K1 $fRFmt':*: $fRFmt'M1