newlineWithIndent :: d
-- | @('column' f)@ write @f@ applied to the current 'Column'.
column :: (Column -> d) -> d
+ -- | @('indent' f)@ write @f@ applied to the current 'Indent'.
+ indent :: (Indent -> d) -> d
-- | @('endToEndWidth' d f)@ write @d@ then
-- @f@ applied to the difference between
-- the end 'Column' and start 'Column' of @d@.
withIndent ind t = Term $ \ro -> unTerm t ro{reader_indent=ind}
incrIndent ind t = Term $ \ro -> unTerm t ro{reader_indent=reader_indent ro + ind}
column f = Term $ \ro st -> unTerm (f st) ro st
+ indent f = Term $ \ro -> unTerm (f (reader_indent ro)) ro
newlineWithoutIndent = Term $ \_ro _st ok _ko ->
ok 0 $ TLB.singleton '\n'
newlineWithIndent = Term $ \ro _st ok _ko ->
withIndent ind p = Dimension $ \ro -> unDimension p ro{reader_indent=ind}
incrIndent ind p = Dimension $ \ro -> unDimension p ro{reader_indent=reader_indent ro + ind}
column f = Dimension $ \ro st -> unDimension (f st) ro st
+ indent f = Dimension $ \ro -> unDimension (f (reader_indent ro)) ro
newlineWithoutIndent = Dimension $ \_ro _st ok _ko ->
ok 0 Dim
{ dim_width = 0
withIndent ind p = TermIO $ \ro -> unTermIO p ro{reader_indent=ind}
incrIndent ind p = TermIO $ \ro -> unTermIO p ro{reader_indent=reader_indent ro + ind}
column f = TermIO $ \ro st -> unTermIO (f st) ro st
+ indent f = TermIO $ \ro -> unTermIO (f (reader_indent ro)) ro
newlineWithoutIndent = TermIO $ \ro _st ok _ko ->
ok 0 $ IO.hPutChar (reader_handle ro) '\n'
newlineWithIndent = TermIO $ \ro@Reader{reader_handle=h} _st ok _ko ->
(\(NameMod n) -> Doc.textH n) <$> p
docParen :: Doc.Textable d => d -> d
-docParen = Doc.between "(" ")"
+docParen = Doc.between (Doc.charH '(') (Doc.charH ')')
{-
docModules ::