hindent-4.6.1: Extensible Haskell pretty printer

Safe HaskellNone
LanguageHaskell98

HIndent.Types

Description

All types.

Synopsis

Documentation

newtype Printer s a Source #

A pretty printing monad.

Constructors

Printer 

Instances

Monad (Printer s) Source # 

Methods

(>>=) :: Printer s a -> (a -> Printer s b) -> Printer s b #

(>>) :: Printer s a -> Printer s b -> Printer s b #

return :: a -> Printer s a #

fail :: String -> Printer s a #

Functor (Printer s) Source # 

Methods

fmap :: (a -> b) -> Printer s a -> Printer s b #

(<$) :: a -> Printer s b -> Printer s a #

Applicative (Printer s) Source # 

Methods

pure :: a -> Printer s a #

(<*>) :: Printer s (a -> b) -> Printer s a -> Printer s b #

(*>) :: Printer s a -> Printer s b -> Printer s b #

(<*) :: Printer s a -> Printer s b -> Printer s a #

Alternative (Printer s) Source # 

Methods

empty :: Printer s a #

(<|>) :: Printer s a -> Printer s a -> Printer s a #

some :: Printer s a -> Printer s [a] #

many :: Printer s a -> Printer s [a] #

MonadPlus (Printer s) Source # 

Methods

mzero :: Printer s a #

mplus :: Printer s a -> Printer s a -> Printer s a #

MonadState (PrintState s) (Printer s) Source # 

Methods

get :: Printer s (PrintState s) #

put :: PrintState s -> Printer s () #

state :: (PrintState s -> (a, PrintState s)) -> Printer s a #

data PrintState s Source #

The state of the pretty printer.

Constructors

PrintState 

Fields

Instances

Eq (PrintState s) Source # 

Methods

(==) :: PrintState s -> PrintState s -> Bool #

(/=) :: PrintState s -> PrintState s -> Bool #

MonadState (PrintState s) (Printer s) Source # 

Methods

get :: Printer s (PrintState s) #

put :: PrintState s -> Printer s () #

state :: (PrintState s -> (a, PrintState s)) -> Printer s a #

data Extender s where Source #

A printer extender. Takes as argument the user state that the printer was run with, and the current node to print. Use prettyNoExt to fallback to the built-in printer.

Constructors

Extender :: forall s a. Typeable a => (a -> Printer s ()) -> Extender s 
CatchAll :: forall s. (forall a. Typeable a => s -> a -> Maybe (Printer s ())) -> Extender s 

data Style Source #

A printer style.

Constructors

Style 

Fields

data Config Source #

Configurations shared among the different styles. Styles may pay attention to or completely disregard this configuration.

Constructors

Config 

Fields

Instances

defaultConfig :: Config Source #

Default style configuration.

data NodeInfo Source #

Information for each node in the AST.

Constructors

NodeInfo 

Fields

Instances

Data NodeInfo Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NodeInfo -> c NodeInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NodeInfo #

toConstr :: NodeInfo -> Constr #

dataTypeOf :: NodeInfo -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c NodeInfo) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NodeInfo) #

gmapT :: (forall b. Data b => b -> b) -> NodeInfo -> NodeInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NodeInfo -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NodeInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> NodeInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NodeInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NodeInfo -> m NodeInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NodeInfo -> m NodeInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NodeInfo -> m NodeInfo #

Show NodeInfo Source # 

data ComInfo Source #

Comment with some more info.

Constructors

ComInfo 

Fields

Instances

Data ComInfo Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ComInfo -> c ComInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ComInfo #

toConstr :: ComInfo -> Constr #

dataTypeOf :: ComInfo -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c ComInfo) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ComInfo) #

gmapT :: (forall b. Data b => b -> b) -> ComInfo -> ComInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ComInfo -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ComInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> ComInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ComInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ComInfo -> m ComInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ComInfo -> m ComInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ComInfo -> m ComInfo #

Show ComInfo Source # 

data ComInfoLocation Source #

Comment relative locations.

Constructors

Before 
After 

Instances

Eq ComInfoLocation Source # 
Data ComInfoLocation Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ComInfoLocation -> c ComInfoLocation #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ComInfoLocation #

toConstr :: ComInfoLocation -> Constr #

dataTypeOf :: ComInfoLocation -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c ComInfoLocation) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ComInfoLocation) #

gmapT :: (forall b. Data b => b -> b) -> ComInfoLocation -> ComInfoLocation #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ComInfoLocation -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ComInfoLocation -> r #

gmapQ :: (forall d. Data d => d -> u) -> ComInfoLocation -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ComInfoLocation -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ComInfoLocation -> m ComInfoLocation #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ComInfoLocation -> m ComInfoLocation #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ComInfoLocation -> m ComInfoLocation #

Show ComInfoLocation Source #