Copyright | Copyright (C) 2009-2019 John MacFarlane |
---|---|
License | BSD3 |
Maintainer | John MacFarlane <jgm@berkeley.edu> |
Stability | alpha |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Text.DocTemplates.Internal
Description
Synopsis
- renderTemplate :: (TemplateTarget a, ToContext a b) => Template a -> b -> Doc a
- class Monad m => TemplateMonad m where
- getPartial :: FilePath -> m Text
- newtype Context a = Context {}
- data Val a
- class ToContext a b where
- class FromContext a b where
- fromVal :: Val a -> Maybe b
- lookupContext :: Text -> Context a -> Maybe b
- type TemplateTarget a = (HasChars a, ToText a, FromText a)
- data Template a
- data Variable = Variable {}
- data Pipe
- data Alignment
- data Border = Border {
- borderLeft :: Text
- borderRight :: Text
Documentation
renderTemplate :: (TemplateTarget a, ToContext a b) => Template a -> b -> Doc a Source #
Render a compiled template in a "context" which provides values for the template's variables.
class Monad m => TemplateMonad m where Source #
A TemplateMonad
defines a function to retrieve a partial
(from the file system, from a database, or using a default
value).
Methods
getPartial :: FilePath -> m Text Source #
Instances
TemplateMonad Identity Source # | |
Defined in Text.DocTemplates.Internal Methods getPartial :: FilePath -> Identity Text Source # | |
TemplateMonad IO Source # | |
Defined in Text.DocTemplates.Internal Methods getPartial :: FilePath -> IO Text Source # |
A Context
defines values for template's variables.
Instances
Foldable Context Source # | |
Defined in Text.DocTemplates.Internal Methods fold :: Monoid m => Context m -> m foldMap :: Monoid m => (a -> m) -> Context a -> m foldMap' :: Monoid m => (a -> m) -> Context a -> m foldr :: (a -> b -> b) -> b -> Context a -> b foldr' :: (a -> b -> b) -> b -> Context a -> b foldl :: (b -> a -> b) -> b -> Context a -> b foldl' :: (b -> a -> b) -> b -> Context a -> b foldr1 :: (a -> a -> a) -> Context a -> a foldl1 :: (a -> a -> a) -> Context a -> a elem :: Eq a => a -> Context a -> Bool maximum :: Ord a => Context a -> a minimum :: Ord a => Context a -> a | |
Traversable Context Source # | |
Functor Context Source # | |
ToContext a (Context a) Source # | |
TemplateTarget a => FromJSON (Context a) Source # | |
Defined in Text.DocTemplates.Internal | |
TemplateTarget a => ToJSON (Context a) Source # | |
Defined in Text.DocTemplates.Internal Methods toEncoding :: Context a -> Encoding toJSONList :: [Context a] -> Value toEncodingList :: [Context a] -> Encoding | |
Data a => Data (Context a) Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Context a -> c (Context a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Context a) toConstr :: Context a -> Constr dataTypeOf :: Context a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Context a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Context a)) gmapT :: (forall b. Data b => b -> b) -> Context a -> Context a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Context a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Context a -> r gmapQ :: (forall d. Data d => d -> u) -> Context a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Context a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Context a -> m (Context a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Context a -> m (Context a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Context a -> m (Context a) | |
Monoid (Context a) Source # | |
Semigroup (Context a) Source # | |
Show a => Show (Context a) Source # | |
A variable value.
Instances
Foldable Val Source # | |
Defined in Text.DocTemplates.Internal Methods fold :: Monoid m => Val m -> m foldMap :: Monoid m => (a -> m) -> Val a -> m foldMap' :: Monoid m => (a -> m) -> Val a -> m foldr :: (a -> b -> b) -> b -> Val a -> b foldr' :: (a -> b -> b) -> b -> Val a -> b foldl :: (b -> a -> b) -> b -> Val a -> b foldl' :: (b -> a -> b) -> b -> Val a -> b foldr1 :: (a -> a -> a) -> Val a -> a foldl1 :: (a -> a -> a) -> Val a -> a elem :: Eq a => a -> Val a -> Bool maximum :: Ord a => Val a -> a | |
Traversable Val Source # | |
Functor Val Source # | |
TemplateTarget a => FromContext a (Val a) Source # | |
ToContext a (Val a) Source # | |
TemplateTarget a => FromJSON (Val a) Source # | |
Defined in Text.DocTemplates.Internal | |
TemplateTarget a => ToJSON (Val a) Source # | |
Defined in Text.DocTemplates.Internal Methods toEncoding :: Val a -> Encoding toJSONList :: [Val a] -> Value toEncodingList :: [Val a] -> Encoding | |
Data a => Data (Val a) Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Val a -> c (Val a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Val a) dataTypeOf :: Val a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Val a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Val a)) gmapT :: (forall b. Data b => b -> b) -> Val a -> Val a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Val a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Val a -> r gmapQ :: (forall d. Data d => d -> u) -> Val a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Val a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Val a -> m (Val a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Val a -> m (Val a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Val a -> m (Val a) | |
Show a => Show (Val a) Source # | |
class ToContext a b where Source #
Minimal complete definition
Instances
TemplateTarget a => ToContext a Value Source # | |
TemplateTarget a => ToContext a Bool Source # | |
TemplateTarget a => ToContext a a Source # | |
ToContext a a => ToContext a (Doc a) Source # | |
ToContext a (Context a) Source # | |
ToContext a (Val a) Source # | |
ToContext a b => ToContext a [b] Source # | |
ToContext a b => ToContext a (Map Text b) Source # | |
TemplateTarget [a] => ToContext [a] [a] Source # | |
class FromContext a b where Source #
The FromContext
class provides functions for extracting
values from Val
and Context
.
Minimal complete definition
Instances
TemplateTarget a => FromContext a a Source # | |
Defined in Text.DocTemplates.Internal | |
TemplateTarget a => FromContext a (Doc a) Source # | |
TemplateTarget a => FromContext a (Val a) Source # | |
FromContext a b => FromContext a [b] Source # | |
Defined in Text.DocTemplates.Internal | |
TemplateTarget [a] => FromContext [a] [a] Source # | |
Defined in Text.DocTemplates.Internal |
type TemplateTarget a = (HasChars a, ToText a, FromText a) Source #
A template.
Constructors
Interpolate Variable | |
Conditional Variable (Template a) (Template a) | |
Iterate Variable (Template a) (Template a) | |
Nested (Template a) | |
Partial [Pipe] (Template a) | |
Literal (Doc a) | |
Concat (Template a) (Template a) | |
Empty |
Instances
Foldable Template Source # | |
Defined in Text.DocTemplates.Internal Methods fold :: Monoid m => Template m -> m foldMap :: Monoid m => (a -> m) -> Template a -> m foldMap' :: Monoid m => (a -> m) -> Template a -> m foldr :: (a -> b -> b) -> b -> Template a -> b foldr' :: (a -> b -> b) -> b -> Template a -> b foldl :: (b -> a -> b) -> b -> Template a -> b foldl' :: (b -> a -> b) -> b -> Template a -> b foldr1 :: (a -> a -> a) -> Template a -> a foldl1 :: (a -> a -> a) -> Template a -> a elem :: Eq a => a -> Template a -> Bool maximum :: Ord a => Template a -> a minimum :: Ord a => Template a -> a | |
Traversable Template Source # | |
Functor Template Source # | |
Data a => Data (Template a) Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Template a -> c (Template a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Template a) toConstr :: Template a -> Constr dataTypeOf :: Template a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Template a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Template a)) gmapT :: (forall b. Data b => b -> b) -> Template a -> Template a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Template a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Template a -> r gmapQ :: (forall d. Data d => d -> u) -> Template a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Template a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Template a -> m (Template a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Template a -> m (Template a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Template a -> m (Template a) | |
Semigroup a => Monoid (Template a) Source # | |
Semigroup a => Semigroup (Template a) Source # | |
Generic (Template a) Source # | |
Read a => Read (Template a) Source # | |
Defined in Text.DocTemplates.Internal | |
Show a => Show (Template a) Source # | |
Eq a => Eq (Template a) Source # | |
Ord a => Ord (Template a) Source # | |
type Rep (Template a) Source # | |
Defined in Text.DocTemplates.Internal type Rep (Template a) = D1 ('MetaData "Template" "Text.DocTemplates.Internal" "doctemplates-0.11-A3hxIPQ11hHAbORL69NlxW" 'False) (((C1 ('MetaCons "Interpolate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable)) :+: C1 ('MetaCons "Conditional" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a))))) :+: (C1 ('MetaCons "Iterate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a)))) :+: C1 ('MetaCons "Nested" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a))))) :+: ((C1 ('MetaCons "Partial" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pipe]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a))) :+: C1 ('MetaCons "Literal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)))) :+: (C1 ('MetaCons "Concat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Template a))) :+: C1 ('MetaCons "Empty" 'PrefixI 'False) (U1 :: Type -> Type)))) |
A variable which may have several parts (foo.bar.baz
).
Instances
Data Variable Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Variable -> c Variable gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Variable toConstr :: Variable -> Constr dataTypeOf :: Variable -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Variable) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Variable) gmapT :: (forall b. Data b => b -> b) -> Variable -> Variable gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Variable -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Variable -> r gmapQ :: (forall d. Data d => d -> u) -> Variable -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Variable -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Variable -> m Variable gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Variable -> m Variable gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Variable -> m Variable | |
Monoid Variable Source # | |
Semigroup Variable Source # | |
Generic Variable Source # | |
Read Variable Source # | |
Defined in Text.DocTemplates.Internal | |
Show Variable Source # | |
Eq Variable Source # | |
Ord Variable Source # | |
Defined in Text.DocTemplates.Internal | |
type Rep Variable Source # | |
Defined in Text.DocTemplates.Internal type Rep Variable = D1 ('MetaData "Variable" "Text.DocTemplates.Internal" "doctemplates-0.11-A3hxIPQ11hHAbORL69NlxW" 'False) (C1 ('MetaCons "Variable" 'PrefixI 'True) (S1 ('MetaSel ('Just "varParts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]) :*: S1 ('MetaSel ('Just "varPipes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pipe]))) |
Constructors
ToPairs | |
ToUppercase | |
ToLowercase | |
ToLength | |
Reverse | |
FirstItem | |
LastItem | |
Rest | |
AllButLast | |
Chomp | |
ToAlpha | |
ToRoman | |
NoWrap | |
Block Alignment Int Border |
Instances
Data Pipe Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pipe -> c Pipe gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pipe dataTypeOf :: Pipe -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pipe) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pipe) gmapT :: (forall b. Data b => b -> b) -> Pipe -> Pipe gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pipe -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pipe -> r gmapQ :: (forall d. Data d => d -> u) -> Pipe -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Pipe -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pipe -> m Pipe gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pipe -> m Pipe gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pipe -> m Pipe | |
Generic Pipe Source # | |
Read Pipe Source # | |
Defined in Text.DocTemplates.Internal | |
Show Pipe Source # | |
Eq Pipe Source # | |
Ord Pipe Source # | |
type Rep Pipe Source # | |
Defined in Text.DocTemplates.Internal type Rep Pipe = D1 ('MetaData "Pipe" "Text.DocTemplates.Internal" "doctemplates-0.11-A3hxIPQ11hHAbORL69NlxW" 'False) (((C1 ('MetaCons "ToPairs" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ToUppercase" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ToLowercase" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ToLength" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Reverse" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FirstItem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LastItem" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Rest" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AllButLast" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Chomp" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ToAlpha" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ToRoman" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NoWrap" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Block" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Alignment) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Border))))))) |
Constructors
LeftAligned | |
Centered | |
RightAligned |
Instances
Data Alignment Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Alignment -> c Alignment gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Alignment toConstr :: Alignment -> Constr dataTypeOf :: Alignment -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Alignment) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Alignment) gmapT :: (forall b. Data b => b -> b) -> Alignment -> Alignment gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Alignment -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Alignment -> r gmapQ :: (forall d. Data d => d -> u) -> Alignment -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Alignment -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Alignment -> m Alignment gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Alignment -> m Alignment gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Alignment -> m Alignment | |
Generic Alignment Source # | |
Read Alignment Source # | |
Defined in Text.DocTemplates.Internal | |
Show Alignment Source # | |
Eq Alignment Source # | |
Ord Alignment Source # | |
Defined in Text.DocTemplates.Internal | |
type Rep Alignment Source # | |
Defined in Text.DocTemplates.Internal type Rep Alignment = D1 ('MetaData "Alignment" "Text.DocTemplates.Internal" "doctemplates-0.11-A3hxIPQ11hHAbORL69NlxW" 'False) (C1 ('MetaCons "LeftAligned" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Centered" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RightAligned" 'PrefixI 'False) (U1 :: Type -> Type))) |
Constructors
Border | |
Fields
|
Instances
Data Border Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Border -> c Border gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Border dataTypeOf :: Border -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Border) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Border) gmapT :: (forall b. Data b => b -> b) -> Border -> Border gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Border -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Border -> r gmapQ :: (forall d. Data d => d -> u) -> Border -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Border -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Border -> m Border gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Border -> m Border gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Border -> m Border | |
Generic Border Source # | |
Read Border Source # | |
Defined in Text.DocTemplates.Internal | |
Show Border Source # | |
Eq Border Source # | |
Ord Border Source # | |
type Rep Border Source # | |
Defined in Text.DocTemplates.Internal type Rep Border = D1 ('MetaData "Border" "Text.DocTemplates.Internal" "doctemplates-0.11-A3hxIPQ11hHAbORL69NlxW" 'False) (C1 ('MetaCons "Border" 'PrefixI 'True) (S1 ('MetaSel ('Just "borderLeft") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "borderRight") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |