layouting-1.1.4: General layouting library. Currently supports layouting 2D areas and can be used as a backend for text pretty printing or automatic windows layouting managers.

Safe HaskellNone
LanguageHaskell2010

Data.Layout

Synopsis

Documentation

betweenWith :: (a -> a -> a) -> a -> a -> a -> a Source #

surroundedWith :: (a -> a -> a) -> a -> a -> a -> a Source #

between :: Semigroup a => a -> a -> a -> a Source #

between' :: Semigroup a => a -> a -> a Source #

parensed :: (Semigroup a, IsString a) => a -> a Source #

bracked :: (Semigroup a, IsString a) => a -> a Source #

braced :: (Semigroup a, IsString a) => a -> a Source #

chevroned :: (Semigroup a, IsString a) => a -> a Source #

spaced :: (Semigroup a, IsString a) => a -> a Source #

quoted :: (Semigroup a, IsString a) => a -> a Source #

singleQuoted :: (Semigroup a, IsString a) => a -> a Source #

backticked :: (Semigroup a, IsString a) => a -> a Source #

enumerateWith :: (Monoid a, Foldable f) => a -> a -> f a -> a Source #

enumerateAlt :: (Monoid a, IsString a, Foldable f) => f a -> a Source #

enumerateSeq :: (Monoid a, IsString a, Foldable f) => f a -> a Source #

newtype Delta Source #

Constructors

Delta Word64 
Instances
Enum Delta Source # 
Instance details

Defined in Data.Layout

Eq Delta Source # 
Instance details

Defined in Data.Layout

Methods

(==) :: Delta -> Delta -> Bool #

(/=) :: Delta -> Delta -> Bool #

Num Delta Source # 
Instance details

Defined in Data.Layout

Ord Delta Source # 
Instance details

Defined in Data.Layout

Methods

compare :: Delta -> Delta -> Ordering #

(<) :: Delta -> Delta -> Bool #

(<=) :: Delta -> Delta -> Bool #

(>) :: Delta -> Delta -> Bool #

(>=) :: Delta -> Delta -> Bool #

max :: Delta -> Delta -> Delta #

min :: Delta -> Delta -> Delta #

Show Delta Source # 
Instance details

Defined in Data.Layout

Methods

showsPrec :: Int -> Delta -> ShowS #

show :: Delta -> String #

showList :: [Delta] -> ShowS #

Generic Delta Source # 
Instance details

Defined in Data.Layout

Associated Types

type Rep Delta :: Type -> Type #

Methods

from :: Delta -> Rep Delta x #

to :: Rep Delta x -> Delta #

Semigroup Delta Source # 
Instance details

Defined in Data.Layout

Methods

(<>) :: Delta -> Delta -> Delta #

sconcat :: NonEmpty Delta -> Delta #

stimes :: Integral b => b -> Delta -> Delta #

Default Delta Source # 
Instance details

Defined in Data.Layout

Methods

def :: Delta #

NFData Delta Source # 
Instance details

Defined in Data.Layout

Methods

rnf :: Delta -> () #

Wrapped Delta Source # 
Instance details

Defined in Data.Layout

Associated Types

type Unwrapped Delta :: Type #

Mempty Delta Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: Delta #

Convertible' a Word64 => Convertible a Delta Source # 
Instance details

Defined in Data.Layout

Methods

convert :: a -> Delta #

Convertible' Word64 a => Convertible Delta a Source # 
Instance details

Defined in Data.Layout

Methods

convert :: Delta -> a #

Delta ~ t => Rewrapped Delta t Source # 
Instance details

Defined in Data.Layout

type Rep Delta Source # 
Instance details

Defined in Data.Layout

type Rep Delta = D1 (MetaData "Delta" "Data.Layout" "layouting-1.1.4-1tYxcYOwPQu7g0JbOxSxJe" True) (C1 (MetaCons "Delta" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word64)))
type Unwrapped Delta Source # 
Instance details

Defined in Data.Layout

class ElemBuilderT t m a where Source #

Methods

plainT :: m a -> t m a Source #

Instances
ElemBuilderT BlockBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

plainT :: m a -> BlockBuilderT m a Source #

ElemBuilderT LineBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

plainT :: m a -> LineBuilderT m a Source #

class ElemBuilder m a where Source #

Methods

plain :: a -> m a Source #

Instances
ElemBuilder Identity a Source # 
Instance details

Defined in Data.Layout

Methods

plain :: a -> Identity a Source #

(ElemBuilder m a, ElemBuilderT t m a) => ElemBuilder (t m) a Source # 
Instance details

Defined in Data.Layout

Methods

plain :: a -> t m a Source #

class RenderT t m a where Source #

Methods

renderT :: t m a -> m a Source #

Instances
(Mempty (m a), Concatenable (m a)) => RenderT BlockBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

renderT :: BlockBuilderT m a -> m a Source #

(Concatenable (m a), Monoid (m a)) => RenderT LineBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

renderT :: LineBuilderT m a -> m a Source #

class Render m a where Source #

Methods

render :: m a -> a Source #

nested :: m a -> m a Source #

Instances
Render Identity a Source # 
Instance details

Defined in Data.Layout

Methods

render :: Identity a -> a Source #

nested :: Identity a -> Identity a Source #

(RenderT t m a, Render m a, ElemBuilderT t m a) => Render (t m) a Source # 
Instance details

Defined in Data.Layout

Methods

render :: t m a -> a Source #

nested :: t m a -> t m a Source #

phantom :: (ElemBuilder t a, Mempty a) => t a Source #

data Bounds Source #

Constructors

Bounds 

Fields

Instances
Show Bounds Source # 
Instance details

Defined in Data.Layout

Mempty Bounds Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: Bounds #

HasBounds Bounds Source # 
Instance details

Defined in Data.Layout

Concatenable Bounds Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> Bounds -> Bounds -> Bounds Source #

data Bounded a Source #

Constructors

Bounded 

Fields

Instances
Functor Bounded Source # 
Instance details

Defined in Data.Layout

Methods

fmap :: (a -> b) -> Bounded a -> Bounded b #

(<$) :: a -> Bounded b -> Bounded a #

Foldable Bounded Source # 
Instance details

Defined in Data.Layout

Methods

fold :: Monoid m => Bounded m -> m #

foldMap :: Monoid m => (a -> m) -> Bounded a -> m #

foldr :: (a -> b -> b) -> b -> Bounded a -> b #

foldr' :: (a -> b -> b) -> b -> Bounded a -> b #

foldl :: (b -> a -> b) -> b -> Bounded a -> b #

foldl' :: (b -> a -> b) -> b -> Bounded a -> b #

foldr1 :: (a -> a -> a) -> Bounded a -> a #

foldl1 :: (a -> a -> a) -> Bounded a -> a #

toList :: Bounded a -> [a] #

null :: Bounded a -> Bool #

length :: Bounded a -> Int #

elem :: Eq a => a -> Bounded a -> Bool #

maximum :: Ord a => Bounded a -> a #

minimum :: Ord a => Bounded a -> a #

sum :: Num a => Bounded a -> a #

product :: Num a => Bounded a -> a #

Traversable Bounded Source # 
Instance details

Defined in Data.Layout

Methods

traverse :: Applicative f => (a -> f b) -> Bounded a -> f (Bounded b) #

sequenceA :: Applicative f => Bounded (f a) -> f (Bounded a) #

mapM :: Monad m => (a -> m b) -> Bounded a -> m (Bounded b) #

sequence :: Monad m => Bounded (m a) -> m (Bounded a) #

Show a => Show (Bounded a) Source # 
Instance details

Defined in Data.Layout

Methods

showsPrec :: Int -> Bounded a -> ShowS #

show :: Bounded a -> String #

showList :: [Bounded a] -> ShowS #

Mempty a => Mempty (Bounded a) Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: Bounded a #

HasBounds (Bounded a) Source # 
Instance details

Defined in Data.Layout

Measurable (Bounded a) Source # 
Instance details

Defined in Data.Layout

Methods

measure :: Bounded a -> Bounds Source #

class HasBounds c where Source #

Minimal complete definition

bounds

bounded_elem :: forall a a. Lens (Bounded a) (Bounded a) a a Source #

class Measurable a where Source #

Methods

measure :: a -> Bounds Source #

Instances
Measurable Text Source # 
Instance details

Defined in Data.Layout

Methods

measure :: Text -> Bounds Source #

Measurable TermText Source # 
Instance details

Defined in Data.Layout

Methods

measure :: TermText -> Bounds Source #

Measurable (Bounded a) Source # 
Instance details

Defined in Data.Layout

Methods

measure :: Bounded a -> Bounds Source #

Measurable (LineBlock a) Source # 
Instance details

Defined in Data.Layout

data Dir Source #

Constructors

Vertical 
Horizontal 
Instances
Show Dir Source # 
Instance details

Defined in Data.Layout

Methods

showsPrec :: Int -> Dir -> ShowS #

show :: Dir -> String #

showList :: [Dir] -> ShowS #

data CartTree t m a Source #

Constructors

Empty 
Plain !(m a) 
Concat !Dir !(t m a) !(t m a) 
Instances
(Functor m, Functor (t m)) => Functor (CartTree t m) Source # 
Instance details

Defined in Data.Layout

Methods

fmap :: (a -> b) -> CartTree t m a -> CartTree t m b #

(<$) :: a -> CartTree t m b -> CartTree t m a #

(Foldable m, Foldable (t m)) => Foldable (CartTree t m) Source # 
Instance details

Defined in Data.Layout

Methods

fold :: Monoid m0 => CartTree t m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> CartTree t m a -> m0 #

foldr :: (a -> b -> b) -> b -> CartTree t m a -> b #

foldr' :: (a -> b -> b) -> b -> CartTree t m a -> b #

foldl :: (b -> a -> b) -> b -> CartTree t m a -> b #

foldl' :: (b -> a -> b) -> b -> CartTree t m a -> b #

foldr1 :: (a -> a -> a) -> CartTree t m a -> a #

foldl1 :: (a -> a -> a) -> CartTree t m a -> a #

toList :: CartTree t m a -> [a] #

null :: CartTree t m a -> Bool #

length :: CartTree t m a -> Int #

elem :: Eq a => a -> CartTree t m a -> Bool #

maximum :: Ord a => CartTree t m a -> a #

minimum :: Ord a => CartTree t m a -> a #

sum :: Num a => CartTree t m a -> a #

product :: Num a => CartTree t m a -> a #

(Traversable m, Traversable (t m)) => Traversable (CartTree t m) Source # 
Instance details

Defined in Data.Layout

Methods

traverse :: Applicative f => (a -> f b) -> CartTree t m a -> f (CartTree t m b) #

sequenceA :: Applicative f => CartTree t m (f a) -> f (CartTree t m a) #

mapM :: Monad m0 => (a -> m0 b) -> CartTree t m a -> m0 (CartTree t m b) #

sequence :: Monad m0 => CartTree t m (m0 a) -> m0 (CartTree t m a) #

Convertible2 (CartTree BlockBuilderT) BlockBuilderT Source # 
Instance details

Defined in Data.Layout

Methods

convert2 :: CartTree BlockBuilderT s1 s2 -> BlockBuilderT s1 s2 #

Convertible2 (CartTree LineBuilderT) LineBuilderT Source # 
Instance details

Defined in Data.Layout

Methods

convert2 :: CartTree LineBuilderT s1 s2 -> LineBuilderT s1 s2 #

(Show (m a), Show (t m a)) => Show (CartTree t m a) Source # 
Instance details

Defined in Data.Layout

Methods

showsPrec :: Int -> CartTree t m a -> ShowS #

show :: CartTree t m a -> String #

showList :: [CartTree t m a] -> ShowS #

Convertible2' (CartTree t) t => Semigroup (CartTree t m a) Source # 
Instance details

Defined in Data.Layout

Methods

(<>) :: CartTree t m a -> CartTree t m a -> CartTree t m a #

sconcat :: NonEmpty (CartTree t m a) -> CartTree t m a #

stimes :: Integral b => b -> CartTree t m a -> CartTree t m a #

Convertible2' (CartTree t) t => Monoid (CartTree t m a) Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: CartTree t m a #

mappend :: CartTree t m a -> CartTree t m a -> CartTree t m a #

mconcat :: [CartTree t m a] -> CartTree t m a #

Mempty (CartTree t m a) Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: CartTree t m a #

Convertible2' (CartTree t) t => Concatenable (CartTree t m a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> CartTree t m a -> CartTree t m a -> CartTree t m a Source #

class Concatenable a where Source #

Methods

concat :: Dir -> a -> a -> a Source #

Instances
Concatenable Bounds Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> Bounds -> Bounds -> Bounds Source #

Concatenable a => Concatenable (Identity a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> Identity a -> Identity a -> Identity a Source #

GenLineBlockConcatCtx a => Concatenable (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> LineBlock a -> LineBlock a -> LineBlock a Source #

Concatenable (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> BlockBuilderT m a -> BlockBuilderT m a -> BlockBuilderT m a Source #

Concatenable (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> LineBuilderT m a -> LineBuilderT m a -> LineBuilderT m a Source #

Convertible2' (CartTree t) t => Concatenable (CartTree t m a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> CartTree t m a -> CartTree t m a -> CartTree t m a Source #

hcat :: Concatenable a => a -> a -> a Source #

vcat :: Concatenable a => a -> a -> a Source #

(</>) :: Concatenable a => a -> a -> a infixr 6 Source #

class Spacing a where Source #

Methods

spacing :: Bounds -> a Source #

Instances
(Convertible String a, Mempty a) => Spacing (LineBlock a) Source # 
Instance details

Defined in Data.Layout

hspacing :: (ElemBuilder t a, Spacing a) => Delta -> t a Source #

vspacing :: (ElemBuilder t a, Spacing a) => Delta -> t a Source #

(<+>) :: (ElemBuilder t a, Semigroup (t a), Spacing a) => t a -> t a -> t a infixr 6 Source #

(<//>) :: (Concatenable (t a), ElemBuilder t a, Spacing a) => t a -> t a -> t a infixr 6 Source #

(<///>) :: (Concatenable (t a), ElemBuilder t a, Spacing a) => t a -> t a -> t a infixr 6 Source #

(<////>) :: (Concatenable (t a), ElemBuilder t a, Spacing a) => t a -> t a -> t a infixr 6 Source #

data LineBlock a Source #

Constructors

LineBlock 

Fields

Instances
Functor LineBlock Source # 
Instance details

Defined in Data.Layout

Methods

fmap :: (a -> b) -> LineBlock a -> LineBlock b #

(<$) :: a -> LineBlock b -> LineBlock a #

Foldable LineBlock Source # 
Instance details

Defined in Data.Layout

Methods

fold :: Monoid m => LineBlock m -> m #

foldMap :: Monoid m => (a -> m) -> LineBlock a -> m #

foldr :: (a -> b -> b) -> b -> LineBlock a -> b #

foldr' :: (a -> b -> b) -> b -> LineBlock a -> b #

foldl :: (b -> a -> b) -> b -> LineBlock a -> b #

foldl' :: (b -> a -> b) -> b -> LineBlock a -> b #

foldr1 :: (a -> a -> a) -> LineBlock a -> a #

foldl1 :: (a -> a -> a) -> LineBlock a -> a #

toList :: LineBlock a -> [a] #

null :: LineBlock a -> Bool #

length :: LineBlock a -> Int #

elem :: Eq a => a -> LineBlock a -> Bool #

maximum :: Ord a => LineBlock a -> a #

minimum :: Ord a => LineBlock a -> a #

sum :: Num a => LineBlock a -> a #

product :: Num a => LineBlock a -> a #

Traversable LineBlock Source # 
Instance details

Defined in Data.Layout

Methods

traverse :: Applicative f => (a -> f b) -> LineBlock a -> f (LineBlock b) #

sequenceA :: Applicative f => LineBlock (f a) -> f (LineBlock a) #

mapM :: Monad m => (a -> m b) -> LineBlock a -> m (LineBlock b) #

sequence :: Monad m => LineBlock (m a) -> m (LineBlock a) #

(Convertible' Text a, Measurable a) => Convertible Text (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: Text -> LineBlock a #

Show a => Show (LineBlock a) Source # 
Instance details

Defined in Data.Layout

(IsString a, Measurable a) => IsString (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

fromString :: String -> LineBlock a #

GenLineBlockConcatCtx a => Semigroup (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

(<>) :: LineBlock a -> LineBlock a -> LineBlock a #

sconcat :: NonEmpty (LineBlock a) -> LineBlock a #

stimes :: Integral b => b -> LineBlock a -> LineBlock a #

GenLineBlockConcatCtx a => Monoid (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Mempty (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: LineBlock a #

Stylable a => Stylable (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

cleanStyles :: LineBlock a -> LineBlock a

withStyle :: [StyleChange] -> LineBlock a -> LineBlock a

HasBounds (LineBlock a) Source # 
Instance details

Defined in Data.Layout

(Convertible String a, Mempty a) => Spacing (LineBlock a) Source # 
Instance details

Defined in Data.Layout

GenLineBlockConcatCtx a => Concatenable (LineBlock a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> LineBlock a -> LineBlock a -> LineBlock a Source #

Measurable (LineBlock a) Source # 
Instance details

Defined in Data.Layout

lines :: forall a a. Lens (LineBlock a) (LineBlock a) [a] [a] Source #

newtype BlockBuilderT m a Source #

Instances
(Mempty (m a), Concatenable (m a)) => RenderT BlockBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

renderT :: BlockBuilderT m a -> m a Source #

ElemBuilderT BlockBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

plainT :: m a -> BlockBuilderT m a Source #

(ElemBuilder m a, Convertible' Text a) => Convertible Char (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: Char -> BlockBuilderT m a #

(ElemBuilder m a, Convertible' Text a) => Convertible Text (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: Text -> BlockBuilderT m a #

(ElemBuilder m a, Convertible' Text a) => Convertible String (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: String -> BlockBuilderT m a #

Functor m => Functor (BlockBuilderT m) Source # 
Instance details

Defined in Data.Layout

Methods

fmap :: (a -> b) -> BlockBuilderT m a -> BlockBuilderT m b #

(<$) :: a -> BlockBuilderT m b -> BlockBuilderT m a #

Foldable m => Foldable (BlockBuilderT m) Source # 
Instance details

Defined in Data.Layout

Methods

fold :: Monoid m0 => BlockBuilderT m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> BlockBuilderT m a -> m0 #

foldr :: (a -> b -> b) -> b -> BlockBuilderT m a -> b #

foldr' :: (a -> b -> b) -> b -> BlockBuilderT m a -> b #

foldl :: (b -> a -> b) -> b -> BlockBuilderT m a -> b #

foldl' :: (b -> a -> b) -> b -> BlockBuilderT m a -> b #

foldr1 :: (a -> a -> a) -> BlockBuilderT m a -> a #

foldl1 :: (a -> a -> a) -> BlockBuilderT m a -> a #

toList :: BlockBuilderT m a -> [a] #

null :: BlockBuilderT m a -> Bool #

length :: BlockBuilderT m a -> Int #

elem :: Eq a => a -> BlockBuilderT m a -> Bool #

maximum :: Ord a => BlockBuilderT m a -> a #

minimum :: Ord a => BlockBuilderT m a -> a #

sum :: Num a => BlockBuilderT m a -> a #

product :: Num a => BlockBuilderT m a -> a #

Traversable m => Traversable (BlockBuilderT m) Source # 
Instance details

Defined in Data.Layout

Methods

traverse :: Applicative f => (a -> f b) -> BlockBuilderT m a -> f (BlockBuilderT m b) #

sequenceA :: Applicative f => BlockBuilderT m (f a) -> f (BlockBuilderT m a) #

mapM :: Monad m0 => (a -> m0 b) -> BlockBuilderT m a -> m0 (BlockBuilderT m b) #

sequence :: Monad m0 => BlockBuilderT m (m0 a) -> m0 (BlockBuilderT m a) #

Show (m a) => Show (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

(ElemBuilder m a, IsString a) => IsString (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

fromString :: String -> BlockBuilderT m a #

Semigroup (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Monoid (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Wrapped (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Associated Types

type Unwrapped (BlockBuilderT m a) :: Type #

Mempty (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: BlockBuilderT m a #

(Stylable a, Functor m) => Stylable (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

cleanStyles :: BlockBuilderT m a -> BlockBuilderT m a

withStyle :: [StyleChange] -> BlockBuilderT m a -> BlockBuilderT m a

Concatenable (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> BlockBuilderT m a -> BlockBuilderT m a -> BlockBuilderT m a Source #

BlockBuilderT m1 a1 ~ t => Rewrapped (BlockBuilderT m2 a2) t Source # 
Instance details

Defined in Data.Layout

Convertible2 (CartTree BlockBuilderT) BlockBuilderT Source # 
Instance details

Defined in Data.Layout

Methods

convert2 :: CartTree BlockBuilderT s1 s2 -> BlockBuilderT s1 s2 #

type Unwrapped (BlockBuilderT m a) Source # 
Instance details

Defined in Data.Layout

newtype LineBuilderT m a Source #

Constructors

LineBuilderT (CartTree LineBuilderT m a) 
Instances
(Concatenable (m a), Monoid (m a)) => RenderT LineBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

renderT :: LineBuilderT m a -> m a Source #

ElemBuilderT LineBuilderT m a Source # 
Instance details

Defined in Data.Layout

Methods

plainT :: m a -> LineBuilderT m a Source #

(ElemBuilder m a, Convertible' Text a) => Convertible Char (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: Char -> LineBuilderT m a #

(ElemBuilder m a, Convertible' Text a) => Convertible Text (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: Text -> LineBuilderT m a #

(ElemBuilder m a, Convertible' Text a) => Convertible String (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

convert :: String -> LineBuilderT m a #

Functor m => Functor (LineBuilderT m) Source # 
Instance details

Defined in Data.Layout

Methods

fmap :: (a -> b) -> LineBuilderT m a -> LineBuilderT m b #

(<$) :: a -> LineBuilderT m b -> LineBuilderT m a #

Foldable m => Foldable (LineBuilderT m) Source # 
Instance details

Defined in Data.Layout

Methods

fold :: Monoid m0 => LineBuilderT m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> LineBuilderT m a -> m0 #

foldr :: (a -> b -> b) -> b -> LineBuilderT m a -> b #

foldr' :: (a -> b -> b) -> b -> LineBuilderT m a -> b #

foldl :: (b -> a -> b) -> b -> LineBuilderT m a -> b #

foldl' :: (b -> a -> b) -> b -> LineBuilderT m a -> b #

foldr1 :: (a -> a -> a) -> LineBuilderT m a -> a #

foldl1 :: (a -> a -> a) -> LineBuilderT m a -> a #

toList :: LineBuilderT m a -> [a] #

null :: LineBuilderT m a -> Bool #

length :: LineBuilderT m a -> Int #

elem :: Eq a => a -> LineBuilderT m a -> Bool #

maximum :: Ord a => LineBuilderT m a -> a #

minimum :: Ord a => LineBuilderT m a -> a #

sum :: Num a => LineBuilderT m a -> a #

product :: Num a => LineBuilderT m a -> a #

Traversable m => Traversable (LineBuilderT m) Source # 
Instance details

Defined in Data.Layout

Methods

traverse :: Applicative f => (a -> f b) -> LineBuilderT m a -> f (LineBuilderT m b) #

sequenceA :: Applicative f => LineBuilderT m (f a) -> f (LineBuilderT m a) #

mapM :: Monad m0 => (a -> m0 b) -> LineBuilderT m a -> m0 (LineBuilderT m b) #

sequence :: Monad m0 => LineBuilderT m (m0 a) -> m0 (LineBuilderT m a) #

Show (m a) => Show (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

(ElemBuilder m a, IsString a) => IsString (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

fromString :: String -> LineBuilderT m a #

Semigroup (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

(<>) :: LineBuilderT m a -> LineBuilderT m a -> LineBuilderT m a #

sconcat :: NonEmpty (LineBuilderT m a) -> LineBuilderT m a #

stimes :: Integral b => b -> LineBuilderT m a -> LineBuilderT m a #

Monoid (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Wrapped (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Associated Types

type Unwrapped (LineBuilderT m a) :: Type #

Mempty (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

mempty :: LineBuilderT m a #

(Stylable a, Functor m) => Stylable (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

cleanStyles :: LineBuilderT m a -> LineBuilderT m a

withStyle :: [StyleChange] -> LineBuilderT m a -> LineBuilderT m a

Concatenable (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

Methods

concat :: Dir -> LineBuilderT m a -> LineBuilderT m a -> LineBuilderT m a Source #

LineBuilderT m1 a1 ~ t => Rewrapped (LineBuilderT m2 a2) t Source # 
Instance details

Defined in Data.Layout

Convertible2 (CartTree LineBuilderT) LineBuilderT Source # 
Instance details

Defined in Data.Layout

Methods

convert2 :: CartTree LineBuilderT s1 s2 -> LineBuilderT s1 s2 #

type Unwrapped (LineBuilderT m a) Source # 
Instance details

Defined in Data.Layout

block :: (Render t a, Concatenable (t a), ElemBuilder t a, Mempty a) => t a -> t a Source #

indented :: (ElemBuilder t a, Spacing a, Semigroup (t a)) => t a -> t a Source #

type Doc a = LineBuilderT BlockBuilder (LineBlock a) Source #

The Doc type is just an alias to predefined layouting transformers. It is unified type allowing many fancy utils, like inserting indented code blocks.