-- | Shows as many spaces as the indent of the current state.
printIndent :: (MonadState PrintState m, MonadWriter (Endo String) m) => m ()
printIndent = do
  s <- get
  printString $ replicate (indent s) ' '

-- | Combination of @showChar '\n'@ and printHereDoc and printIndent.
printIndent :: (MonadState PrintState m, MonadWriter (Endo String) m) => m ()
printIndent = do
  s <- get
  printString $ replicate (indent s) ' '

-- | Combination of @showChar '\n'@ and printHereDoc and printIndent.
printIndent = do
  s <- get
  printString $ replicate (indent s) ' '

-- | Combination of @showChar '\n'@ and printHereDoc and printIndent.