Safe Haskell | None |
---|---|
Language | Haskell2010 |
PlutusCore.Pretty
Synopsis
- data Doc ann
-
class
Pretty
a
where
- pretty :: a -> Doc ann
- prettyList :: [a] -> Doc ann
-
class
PrettyBy
config a
where
- prettyBy :: config -> a -> Doc ann
- prettyListBy :: config -> [a] -> Doc ann
-
newtype
IgnorePrettyConfig
a =
IgnorePrettyConfig
{
- unIgnorePrettyConfig :: a
- data AttachPrettyConfig config a = AttachPrettyConfig !config !a
- class Render str where
- display :: forall str a. ( Pretty a, Render str) => a -> str
- displayBy :: forall str a config. ( PrettyBy config a, Render str) => config -> a -> str
- prettyPlcDef :: PrettyPlc a => a -> Doc ann
- displayPlcDef :: ( PrettyPlc a, Render str) => a -> str
- prettyPlcDebug :: PrettyPlc a => a -> Doc ann
- displayPlcDebug :: ( PrettyPlc a, Render str) => a -> str
- data CondensedErrors
- newtype PrettyConfigPlcOptions = PrettyConfigPlcOptions { }
- data PrettyConfigPlcStrategy
- data PrettyConfigPlc = PrettyConfigPlc { }
- type PrettyPlc = PrettyBy PrettyConfigPlc
- defPrettyConfigPlcOptions :: PrettyConfigPlcOptions
- defPrettyConfigPlcClassic :: PrettyConfigPlcOptions -> PrettyConfigPlc
- debugPrettyConfigPlcClassic :: PrettyConfigPlcOptions -> PrettyConfigPlc
- defPrettyConfigPlcReadable :: PrettyConfigPlcOptions -> PrettyConfigPlc
- debugPrettyConfigPlcReadable :: PrettyConfigPlcOptions -> PrettyConfigPlc
- prettyPlcClassicDef :: PrettyPlc a => a -> Doc ann
- prettyPlcClassicDebug :: PrettyPlc a => a -> Doc ann
- prettyPlcReadableDef :: PrettyPlc a => a -> Doc ann
- prettyPlcReadableDebug :: PrettyPlc a => a -> Doc ann
- prettyPlcCondensedErrorBy :: PrettyPlc a => ( PrettyConfigPlcOptions -> PrettyConfigPlc ) -> a -> Doc ann
- displayPlcCondensedErrorClassic :: ( PrettyPlc a, Render str) => a -> str
- newtype PrettyConfigName = PrettyConfigName { }
-
class
HasPrettyConfigName
config
where
- toPrettyConfigName :: config -> PrettyConfigName
- defPrettyConfigName :: PrettyConfigName
- debugPrettyConfigName :: PrettyConfigName
-
data
PrettyConfigClassic
configName =
PrettyConfigClassic
{
- _pccConfigName :: configName
- _pccDisplayAnn :: Bool
- type PrettyClassicBy configName = PrettyBy ( PrettyConfigClassic configName)
- type PrettyClassic = PrettyClassicBy PrettyConfigName
- consAnnIf :: Pretty ann => PrettyConfigClassic configName -> ann -> [ Doc dann] -> [ Doc dann]
- prettyClassicDef :: PrettyClassic a => a -> Doc ann
- prettyClassicDebug :: PrettyClassic a => a -> Doc ann
- data ShowKinds
-
data
PrettyConfigReadable
configName =
PrettyConfigReadable
{
- _pcrConfigName :: configName
- _pcrRenderContext :: RenderContext
- _pcrShowKinds :: ShowKinds
- type PrettyReadableBy configName = PrettyBy ( PrettyConfigReadable configName)
- type PrettyReadable = PrettyReadableBy PrettyConfigName
- topPrettyConfigReadable :: configName -> ShowKinds -> PrettyConfigReadable configName
- botPrettyConfigReadable :: configName -> ShowKinds -> PrettyConfigReadable configName
- prettyBytes :: ByteString -> Doc ann
- data ConstConfig = ConstConfig
- type PrettyConst = PrettyBy ConstConfig
- prettyConst :: PrettyConst a => a -> Doc ann
Basic types and functions
The abstract data type
represents pretty documents that have
been annotated with data of type
Doc
ann
ann
.
More specifically, a value of type
represents a non-empty set of
possible layouts of a document. The layout functions select one of these
possibilities, taking into account things like the width of the output
document.
Doc
The annotation is an arbitrary piece of data associated with (part of) a document. Annotations may be used by the rendering backends in order to display output differently, such as
- color information (e.g. when rendering to the terminal)
- mouseover text (e.g. when rendering to rich HTML)
- whether to show something or not (to allow simple or detailed versions)
The simplest way to display a
Doc
is via the
Show
class.
>>>
putStrLn (show (vsep ["hello", "world"]))
hello world
Instances
Minimal complete definition
Methods
pretty :: a -> Doc ann Source #
>>>
pretty 1 <+> pretty "hello" <+> pretty 1.234
1 hello 1.234
prettyList :: [a] -> Doc ann Source #
is only used to define the
prettyList
instance
. In normal circumstances only the
Pretty
a =>
Pretty
[a]
function is used.
pretty
>>>
prettyList [1, 23, 456]
[1, 23, 456]
Instances
class PrettyBy config a where Source #
A class for pretty-printing values in a configurable manner.
A basic example:
>>>
data Case = UpperCase | LowerCase
>>>
data D = D
>>>
instance PrettyBy Case D where prettyBy UpperCase D = "D"; prettyBy LowerCase D = "d"
>>>
prettyBy UpperCase D
D>>>
prettyBy LowerCase D
d
The library provides instances for common types like
Integer
or
Bool
, so you can't define
your own
PrettyBy SomeConfig Integer
instance. And for the same reason you should not define
instances like
PrettyBy SomeAnotherConfig a
for universally quantified
a
, because such an
instance would overlap with the existing ones. Take for example
>>>
data ViaShow = ViaShow
>>>
instance Show a => PrettyBy ViaShow a where prettyBy ViaShow = pretty . show
with such an instance
prettyBy ViaShow (1 :: Int)
throws an error about overlapping instances:
• Overlapping instances for PrettyBy ViaShow Int arising from a use of ‘prettyBy’ Matching instances: instance PrettyDefaultBy config Int => PrettyBy config Int instance [safe] Show a => PrettyBy ViaShow a
There's a
newtype
provided specifically for the purpose of defining a
PrettyBy
instance for
any
a
:
PrettyAny
. Read its docs for details on when you might want to use it.
The
PrettyBy
instance for common types is defined in a way that allows to override default
pretty-printing behaviour, read the docs of
HasPrettyDefaults
for details.
Minimal complete definition
Nothing
Methods
prettyBy :: config -> a -> Doc ann Source #
Pretty-print a value of type
a
the way a
config
specifies it.
The default implementation of
prettyBy
is in terms of
pretty
,
defaultPrettyFunctorBy
or
defaultPrettyBifunctorBy
depending on the kind of the data type that you're providing
an instance for. For example, the default implementation of
prettyBy
for a monomorphic type
is going to be "ignore the config and call
pretty
over the value":
>>>
newtype N = N Int deriving newtype (Pretty)
>>>
instance PrettyBy () N
>>>
prettyBy () (N 42)
42
The default implementation of
prettyBy
for a
Functor
is going to be in terms of
defaultPrettyFunctorBy
:
>>>
newtype N a = N a deriving stock (Functor) deriving newtype (Pretty)
>>>
instance PrettyBy () a => PrettyBy () (N a)
>>>
prettyBy () (N (42 :: Int))
42
It's fine for the data type to have a phantom parameter as long as the data type is still a
Functor
(i.e. the parameter has to be of kind
Type
). Then
defaultPrettyFunctorBy
is used
again:
>>>
newtype N a = N Int deriving stock (Functor) deriving newtype (Pretty)
>>>
instance PrettyBy () (N b)
>>>
prettyBy () (N 42)
42
If the data type has a single parameter of any other kind, then it's not a functor and so
like in the monomorphic case
pretty
is used:
>>>
newtype N (b :: Bool) = N Int deriving newtype (Pretty)
>>>
instance PrettyBy () (N b)
>>>
prettyBy () (N 42)
42
Same applies to a data type with two parameters: if both the parameters are of kind
Type
,
then the data type is assumed to be a
Bifunctor
and hence
defaultPrettyBifunctorBy
is
used. If the right parameter is of kind
Type
and the left parameter is of any other kind,
then we fallback to assuming the data type is a
Functor
and defining
prettyBy
as
defaultPrettyFunctorBy
. If both the parameters are not of kind
Type
, we fallback to
implementing
prettyBy
in terms of
pretty
like in the monomorphic case.
Note that in all those cases a
Pretty
instance for the data type has to already exist,
so that we can derive a
PrettyBy
one in terms of it. If it doesn't exist or if your data
type is not supported (for example, if it has three or more parameters of kind
Type
), then
you'll need to provide the implementation manually.
prettyListBy :: config -> [a] -> Doc ann Source #
prettyListBy
is used to define the default
PrettyBy
instance for
[a]
and
NonEmpty a
.
In normal circumstances only the
prettyBy
function is used.
The default implementation of
prettyListBy
is in terms of
defaultPrettyFunctorBy
.
Instances
PrettyDefaultBy config Word8 => PrettyBy config Word8 | |
PrettyDefaultBy config Word64 => PrettyBy config Word64 | |
PrettyDefaultBy config Word32 => PrettyBy config Word32 | |
PrettyDefaultBy config Word16 => PrettyBy config Word16 | |
PrettyDefaultBy config Word => PrettyBy config Word | |
PrettyDefaultBy config Void => PrettyBy config Void |
|
PrettyDefaultBy config Text => PrettyBy config Text |
Automatically converts all newlines to
|
PrettyDefaultBy config Text => PrettyBy config Text |
An instance for lazy
|
PrettyDefaultBy config Natural => PrettyBy config Natural |
|
PrettyDefaultBy config Integer => PrettyBy config Integer |
|
PrettyDefaultBy config Int8 => PrettyBy config Int8 | |
PrettyDefaultBy config Int64 => PrettyBy config Int64 | |
PrettyDefaultBy config Int32 => PrettyBy config Int32 | |
PrettyDefaultBy config Int16 => PrettyBy config Int16 | |
PrettyDefaultBy config Int => PrettyBy config Int |
|
PrettyDefaultBy config Float => PrettyBy config Float |
|
PrettyDefaultBy config Double => PrettyBy config Double |
|
PrettyDefaultBy config Char => PrettyBy config Char |
By default a
|
PrettyDefaultBy config Bool => PrettyBy config Bool |
|
PrettyDefaultBy config () => PrettyBy config () |
The argument is not used:
|
Defined in Text.PrettyBy.Internal |
|
HasPrettyConfigName config => PrettyBy config TyName Source # | |
HasPrettyConfigName config => PrettyBy config Name Source # | |
HasPrettyConfigName config => PrettyBy config TyDeBruijn Source # | |
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> TyDeBruijn -> Doc ann Source # prettyListBy :: config -> [ TyDeBruijn ] -> Doc ann Source # |
|
HasPrettyConfigName config => PrettyBy config NamedTyDeBruijn Source # | |
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> NamedTyDeBruijn -> Doc ann Source # prettyListBy :: config -> [ NamedTyDeBruijn ] -> Doc ann Source # |
|
HasPrettyConfigName config => PrettyBy config FakeNamedDeBruijn Source # | |
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> FakeNamedDeBruijn -> Doc ann Source # prettyListBy :: config -> [ FakeNamedDeBruijn ] -> Doc ann Source # |
|
HasPrettyConfigName config => PrettyBy config DeBruijn Source # | |
HasPrettyConfigName config => PrettyBy config NamedDeBruijn Source # | |
Defined in PlutusCore.DeBruijn.Internal Methods prettyBy :: config -> NamedDeBruijn -> Doc ann Source # prettyListBy :: config -> [ NamedDeBruijn ] -> Doc ann Source # |
|
PrettyBy config ExCPU Source # | |
PrettyBy config ExMemory Source # | |
PrettyBy config ExRestrictingBudget Source # | |
Defined in PlutusCore.Evaluation.Machine.ExBudget Methods prettyBy :: config -> ExRestrictingBudget -> Doc ann Source # prettyListBy :: config -> [ ExRestrictingBudget ] -> Doc ann Source # |
|
PrettyBy config ExBudget Source # | |
PrettyBy config RestrictingSt Source # | |
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.ExBudgetMode Methods prettyBy :: config -> RestrictingSt -> Doc ann Source # prettyListBy :: config -> [ RestrictingSt ] -> Doc ann Source # |
|
PrettyBy config CountingSt Source # | |
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.ExBudgetMode Methods prettyBy :: config -> CountingSt -> Doc ann Source # prettyListBy :: config -> [ CountingSt ] -> Doc ann Source # |
|
PrettyBy PrettyConfigPlc DefaultFun Source # | |
Defined in PlutusCore.Default.Builtins Methods prettyBy :: PrettyConfigPlc -> DefaultFun -> Doc ann Source # prettyListBy :: PrettyConfigPlc -> [ DefaultFun ] -> Doc ann Source # |
|
PrettyBy ConstConfig ByteString Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods prettyBy :: ConstConfig -> ByteString -> Doc ann Source # prettyListBy :: ConstConfig -> [ ByteString ] -> Doc ann Source # |
|
PrettyBy ConstConfig Data Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods prettyBy :: ConstConfig -> Data -> Doc ann Source # prettyListBy :: ConstConfig -> [ Data ] -> Doc ann Source # |
|
PrettyDefaultBy config a => PrettyBy config ( PrettyCommon a) | |
Defined in Text.PrettyBy.Internal Methods prettyBy :: config -> PrettyCommon a -> Doc ann Source # prettyListBy :: config -> [ PrettyCommon a] -> Doc ann Source # |
|
PrettyDefaultBy config [a] => PrettyBy config [a] |
|
Defined in Text.PrettyBy.Internal |
|
PrettyDefaultBy config ( NonEmpty a) => PrettyBy config ( NonEmpty a) |
|
PrettyDefaultBy config ( Maybe a) => PrettyBy config ( Maybe a) |
By default a
|
Pretty a => PrettyBy config ( IgnorePrettyConfig a) |
|
Defined in Text.PrettyBy.Internal Methods prettyBy :: config -> IgnorePrettyConfig a -> Doc ann Source # prettyListBy :: config -> [ IgnorePrettyConfig a] -> Doc ann Source # |
|
PrettyDefaultBy config ( Identity a) => PrettyBy config ( Identity a) |
|
PrettyBy config a => PrettyBy config ( EvaluationResult a) Source # | |
Defined in PlutusCore.Evaluation.Result Methods prettyBy :: config -> EvaluationResult a -> Doc ann Source # prettyListBy :: config -> [ EvaluationResult a] -> Doc ann Source # |
|
PrettyBy config a => PrettyBy config ( Normalized a) Source # | |
Defined in PlutusCore.Core.Type Methods prettyBy :: config -> Normalized a -> Doc ann Source # prettyListBy :: config -> [ Normalized a] -> Doc ann Source # |
|
HasPrettyDefaults config ~ ' True , Pretty fun) => PrettyBy config ( MachineError fun) ( Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods prettyBy :: config -> MachineError fun -> Doc ann Source # prettyListBy :: config -> [ MachineError fun] -> Doc ann Source # |
|
Show fun, Ord fun) => PrettyBy config ( TallyingSt fun) ( Source # | |
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.ExBudgetMode Methods prettyBy :: config -> TallyingSt fun -> Doc ann Source # prettyListBy :: config -> [ TallyingSt fun] -> Doc ann Source # |
|
Show fun, Ord fun) => PrettyBy config ( CekExTally fun) ( Source # | |
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.ExBudgetMode Methods prettyBy :: config -> CekExTally fun -> Doc ann Source # prettyListBy :: config -> [ CekExTally fun] -> Doc ann Source # |
|
PrettyBy PrettyConfigPlc ( PrettyAny a) DefaultPrettyPlcStrategy a => Source # | |
Defined in PlutusCore.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> PrettyAny a -> Doc ann Source # prettyListBy :: PrettyConfigPlc -> [ PrettyAny a] -> Doc ann Source # |
|
Kind ann) => PrettyBy PrettyConfigPlc ( Kind ann) DefaultPrettyPlcStrategy ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Kind ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Kind ann] -> Doc ann0 Source # |
|
PrettyBy PrettyConfigPlcStrategy ( PrettyAny a) DefaultPrettyPlcStrategy a => Source # | |
Defined in PlutusCore.Pretty.Plc Methods prettyBy :: PrettyConfigPlcStrategy -> PrettyAny a -> Doc ann Source # prettyListBy :: PrettyConfigPlcStrategy -> [ PrettyAny a] -> Doc ann Source # |
|
DefaultPrettyBy ConstConfig ( PrettyAny a) => PrettyBy ConstConfig ( PrettyAny a) Source # | |
Defined in PlutusCore.Pretty.PrettyConst Methods prettyBy :: ConstConfig -> PrettyAny a -> Doc ann Source # prettyListBy :: ConstConfig -> [ PrettyAny a] -> Doc ann Source # |
|
PrettyDefaultBy config ( Either a b) => PrettyBy config ( Either a b) Source # |
An instance extending the set of types supporting default pretty-printing with
|
PrettyDefaultBy config (a, b) => PrettyBy config (a, b) |
|
Defined in Text.PrettyBy.Internal |
|
PrettyBy config cause, PrettyBy config err) => PrettyBy config ( ErrorWithCause err cause) ( Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods prettyBy :: config -> ErrorWithCause err cause -> Doc ann Source # prettyListBy :: config -> [ ErrorWithCause err cause] -> Doc ann Source # |
|
HasPrettyDefaults config ~ ' True , PrettyBy config internal, Pretty user) => PrettyBy config ( EvaluationError user internal) ( Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods prettyBy :: config -> EvaluationError user internal -> Doc ann Source # prettyListBy :: config -> [ EvaluationError user internal] -> Doc ann Source # |
|
Closed uni, GShow uni, Everywhere uni PrettyConst , Pretty fun) => PrettyBy PrettyConfigPlc ( CkValue uni fun) ( Source # | |
Defined in PlutusCore.Evaluation.Machine.Ck Methods prettyBy :: PrettyConfigPlc -> CkValue uni fun -> Doc ann Source # prettyListBy :: PrettyConfigPlc -> [ CkValue uni fun] -> Doc ann Source # |
|
Closed uni, GShow uni, Everywhere uni PrettyConst , Pretty fun) => PrettyBy PrettyConfigPlc ( CekValue uni fun) ( Source # | |
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.Internal Methods prettyBy :: PrettyConfigPlc -> CekValue uni fun -> Doc ann Source # prettyListBy :: PrettyConfigPlc -> [ CekValue uni fun] -> Doc ann Source # |
|
PrettyBy PrettyConfigPlc ( TypeErrorExt uni ann) PrettyUni uni ann => Source # | |
Defined in PlutusIR.Error Methods prettyBy :: PrettyConfigPlc -> TypeErrorExt uni ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ TypeErrorExt uni ann] -> Doc ann0 Source # |
|
PrettyDefaultBy config ( Const a b) => PrettyBy config ( Const a b) |
Non-polykinded, because
|
PrettyDefaultBy config (a, b, c) => PrettyBy config (a, b, c) |
|
Defined in Text.PrettyBy.Internal |
|
Type tyname uni ann) => PrettyBy PrettyConfigPlc ( Type tyname uni ann) DefaultPrettyPlcStrategy ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Type tyname uni ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Type tyname uni ann] -> Doc ann0 Source # |
|
GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy PrettyConfigPlc ( Error uni fun ann) ( Source # | |
Defined in PlutusCore.Error Methods prettyBy :: PrettyConfigPlc -> Error uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Error uni fun ann] -> Doc ann0 Source # |
|
GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy PrettyConfigPlc ( Error uni fun ann) ( Source # | |
Defined in PlutusIR.Error Methods prettyBy :: PrettyConfigPlc -> Error uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Error uni fun ann] -> Doc ann0 Source # |
|
GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty ann, Pretty fun, Pretty term) => PrettyBy PrettyConfigPlc ( TypeError term uni fun ann) ( Source # | |
Defined in PlutusCore.Error Methods prettyBy :: PrettyConfigPlc -> TypeError term uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ TypeError term uni fun ann] -> Doc ann0 Source # |
|
Program name uni fun ann) => PrettyBy PrettyConfigPlc ( Program name uni fun ann) DefaultPrettyPlcStrategy ( Source # | |
Defined in UntypedPlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Program name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Program name uni fun ann] -> Doc ann0 Source # |
|
Term name uni fun ann) => PrettyBy PrettyConfigPlc ( Term name uni fun ann) DefaultPrettyPlcStrategy ( Source # | |
Defined in UntypedPlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Term name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Term name uni fun ann] -> Doc ann0 Source # |
|
Pretty ann, PrettyBy config ( Type tyname uni ann), PrettyBy config ( Term tyname name uni fun ann)) => PrettyBy config ( NormCheckError tyname name uni fun ann) ( Source # | |
Defined in PlutusCore.Error Methods prettyBy :: config -> NormCheckError tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: config -> [ NormCheckError tyname name uni fun ann] -> Doc ann0 Source # |
|
Program tyname name uni fun ann) => PrettyBy PrettyConfigPlc ( Program tyname name uni fun ann) DefaultPrettyPlcStrategy ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Program tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Program tyname name uni fun ann] -> Doc ann0 Source # |
|
Term tyname name uni fun ann) => PrettyBy PrettyConfigPlc ( Term tyname name uni fun ann) DefaultPrettyPlcStrategy ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Plc Methods prettyBy :: PrettyConfigPlc -> Term tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigPlc -> [ Term tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyBy ( PrettyConfigClassic configName) Strictness Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> Strictness -> Doc ann Source # prettyListBy :: PrettyConfigClassic configName -> [ Strictness ] -> Doc ann Source # |
|
PrettyBy ( PrettyConfigClassic configName) Recursivity Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> Recursivity -> Doc ann Source # prettyListBy :: PrettyConfigClassic configName -> [ Recursivity ] -> Doc ann Source # |
|
PrettyBy ( PrettyConfigReadable configName) ( Kind a) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Kind a -> Doc ann Source # prettyListBy :: PrettyConfigReadable configName -> [ Kind a] -> Doc ann Source # |
|
Pretty ann => PrettyBy ( PrettyConfigClassic configName) ( Kind ann) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Kind ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Kind ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( TyVarDecl tyname ann) ( Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> TyVarDecl tyname ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ TyVarDecl tyname ann] -> Doc ann0 Source # |
|
PrettyReadableBy configName tyname, GShow uni) => PrettyBy ( PrettyConfigReadable configName) ( Type tyname uni a) ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Type tyname uni a -> Doc ann Source # prettyListBy :: PrettyConfigReadable configName -> [ Type tyname uni a] -> Doc ann Source # |
|
PrettyClassicBy configName tyname, GShow uni, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Type tyname uni ann) ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Type tyname uni ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Type tyname uni ann] -> Doc ann0 Source # |
|
PrettyReadableBy configName ( Term name uni fun a) => PrettyBy ( PrettyConfigReadable configName) ( Program name uni fun a) Source # | |
Defined in UntypedPlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Program name uni fun a -> Doc ann Source # prettyListBy :: PrettyConfigReadable configName -> [ Program name uni fun a] -> Doc ann Source # |
|
PrettyReadableBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun) => PrettyBy ( PrettyConfigReadable configName) ( Term name uni fun a) ( Source # | |
Defined in UntypedPlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Term name uni fun a -> Doc ann Source # prettyListBy :: PrettyConfigReadable configName -> [ Term name uni fun a] -> Doc ann Source # |
|
PrettyClassicBy configName ( Term name uni fun ann), Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Program name uni fun ann) ( Source # | |
Defined in UntypedPlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Program name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Program name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Term name uni fun ann) ( Source # | |
Defined in UntypedPlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Term name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Term name uni fun ann] -> Doc ann0 Source # |
|
PrettyReadableBy configName ( Term tyname name uni fun a) => PrettyBy ( PrettyConfigReadable configName) ( Program tyname name uni fun a) Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Program tyname name uni fun a -> Doc ann Source # prettyListBy :: PrettyConfigReadable configName -> [ Program tyname name uni fun a] -> Doc ann Source # |
|
PrettyReadableBy configName tyname, PrettyReadableBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun) => PrettyBy ( PrettyConfigReadable configName) ( Term tyname name uni fun a) ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Readable Methods prettyBy :: PrettyConfigReadable configName -> Term tyname name uni fun a -> Doc ann Source # prettyListBy :: PrettyConfigReadable configName -> [ Term tyname name uni fun a] -> Doc ann Source # |
|
PrettyClassicBy configName ( Term tyname name uni fun ann), Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Program tyname name uni fun ann) ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Program tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Program tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Term tyname name uni fun ann) ( Source # | |
Defined in PlutusCore.Core.Instance.Pretty.Classic Methods prettyBy :: PrettyConfigClassic configName -> Term tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Term tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Program tyname name uni fun ann) ( Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> Program tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Program tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Term tyname name uni fun ann) ( Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> Term tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Term tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Closed uni, Everywhere uni PrettyConst , Pretty fun, Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Binding tyname name uni fun ann) ( Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> Binding tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Binding tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Everywhere uni PrettyConst , Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( Datatype tyname name uni fun ann) ( Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> Datatype tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ Datatype tyname name uni fun ann] -> Doc ann0 Source # |
|
PrettyClassicBy configName tyname, PrettyClassicBy configName name, GShow uni, Everywhere uni PrettyConst , Pretty ann) => PrettyBy ( PrettyConfigClassic configName) ( VarDecl tyname name uni fun ann) ( Source # | |
Defined in PlutusIR.Core.Instance.Pretty Methods prettyBy :: PrettyConfigClassic configName -> VarDecl tyname name uni fun ann -> Doc ann0 Source # prettyListBy :: PrettyConfigClassic configName -> [ VarDecl tyname name uni fun ann] -> Doc ann0 Source # |
newtype IgnorePrettyConfig a Source #
A newtype wrapper around
a
whose point is to provide a
PrettyBy config
instance
for anything that has a
Pretty
instance.
Constructors
IgnorePrettyConfig | |
Fields
|
Instances
Pretty a => PrettyBy config ( IgnorePrettyConfig a) |
|
Defined in Text.PrettyBy.Internal Methods prettyBy :: config -> IgnorePrettyConfig a -> Doc ann Source # prettyListBy :: config -> [ IgnorePrettyConfig a] -> Doc ann Source # |
data AttachPrettyConfig config a Source #
A config together with some value. The point is to provide a
Pretty
instance
for anything that has a
PrettyBy config
instance.
Constructors
AttachPrettyConfig !config !a |
Instances
PrettyBy config a => Pretty ( AttachPrettyConfig config a) |
|
Defined in Text.PrettyBy.Internal Methods pretty :: AttachPrettyConfig config a -> Doc ann Source # prettyList :: [ AttachPrettyConfig config a] -> Doc ann Source # |
display :: forall str a. ( Pretty a, Render str) => a -> str Source #
Pretty-print and render a value as a string type.
displayBy :: forall str a config. ( PrettyBy config a, Render str) => config -> a -> str Source #
Pretty-print and render a value as a string type in a configurable way.
Defaults
prettyPlcDef :: PrettyPlc a => a -> Doc ann Source #
Pretty-print a value in the default mode using the classic view.
displayPlcDef :: ( PrettyPlc a, Render str) => a -> str Source #
Render a value to
String
in the default mode using the classic view.
prettyPlcDebug :: PrettyPlc a => a -> Doc ann Source #
Pretty-print a value in the debug mode using the classic view.
displayPlcDebug :: ( PrettyPlc a, Render str) => a -> str Source #
Render a value to
String
in the debug mode using the classic view.
Global configuration
data CondensedErrors Source #
Whether to pretty-print PLC errors in full or with some information omitted.
Constructors
CondensedErrorsYes | |
CondensedErrorsNo |
Instances
Eq CondensedErrors Source # | |
Defined in PlutusCore.Pretty.Plc Methods (==) :: CondensedErrors -> CondensedErrors -> Bool Source # (/=) :: CondensedErrors -> CondensedErrors -> Bool Source # |
|
Show CondensedErrors Source # | |
Defined in PlutusCore.Pretty.Plc |
newtype PrettyConfigPlcOptions Source #
Options for pretty-printing PLC entities.
Constructors
PrettyConfigPlcOptions | |
Fields |
data PrettyConfigPlcStrategy Source #
Strategy for pretty-printing PLC entities.
Constructors
PrettyConfigPlcClassic ( PrettyConfigClassic PrettyConfigName ) | |
PrettyConfigPlcReadable ( PrettyConfigReadable PrettyConfigName ) |
Instances
HasPrettyConfigName PrettyConfigPlcStrategy Source # | |
Defined in PlutusCore.Pretty.Plc Methods toPrettyConfigName :: PrettyConfigPlcStrategy -> PrettyConfigName Source # |
|
PrettyBy PrettyConfigPlcStrategy ( PrettyAny a) DefaultPrettyPlcStrategy a => Source # | |
Defined in PlutusCore.Pretty.Plc Methods prettyBy :: PrettyConfigPlcStrategy -> PrettyAny a -> Doc ann Source # prettyListBy :: PrettyConfigPlcStrategy -> [ PrettyAny a] -> Doc ann Source # |
data PrettyConfigPlc Source #
Global configuration used for pretty-printing PLC entities.
Constructors
PrettyConfigPlc | |
Instances
type PrettyPlc = PrettyBy PrettyConfigPlc Source #
The "pretty-printable PLC entity" constraint.
defPrettyConfigPlcOptions :: PrettyConfigPlcOptions Source #
The
PrettyConfigPlcOptions
used by default:
print errors in full.
defPrettyConfigPlcClassic :: PrettyConfigPlcOptions -> PrettyConfigPlc Source #
The
PrettyConfigPlc
used by default:
use the classic view and print neither
Unique
s, nor name attachments.
debugPrettyConfigPlcClassic :: PrettyConfigPlcOptions -> PrettyConfigPlc Source #
The
PrettyConfigPlc
used for debugging:
use the classic view and print
Unique
s, but not name attachments.
defPrettyConfigPlcReadable :: PrettyConfigPlcOptions -> PrettyConfigPlc Source #
The
PrettyConfigPlc
used by default and for readability:
use the refined view and print neither
Unique
s, nor name attachments.
debugPrettyConfigPlcReadable :: PrettyConfigPlcOptions -> PrettyConfigPlc Source #
The
PrettyConfigPlc
used for debugging and readability:
use the refined view and print
Unique
s, but not name attachments.
Custom functions for PLC types.
prettyPlcClassicDef :: PrettyPlc a => a -> Doc ann Source #
Pretty-print a PLC value in the default mode using the classic view.
prettyPlcClassicDebug :: PrettyPlc a => a -> Doc ann Source #
Pretty-print a PLC value in the debug mode using the classic view.
prettyPlcReadableDef :: PrettyPlc a => a -> Doc ann Source #
Pretty-print a PLC value in the default mode using the readable view.
prettyPlcReadableDebug :: PrettyPlc a => a -> Doc ann Source #
Pretty-print a PLC value in the debug mode using the readable view.
prettyPlcCondensedErrorBy :: PrettyPlc a => ( PrettyConfigPlcOptions -> PrettyConfigPlc ) -> a -> Doc ann Source #
Pretty-print a PLC value using the condensed way (see
CondensedErrors
)
of pretty-printing PLC errors (in case there are any).
displayPlcCondensedErrorClassic :: ( PrettyPlc a, Render str) => a -> str Source #
Render an error to
String
in the condensed manner using the classic view.
Names
newtype PrettyConfigName Source #
A config that determines how to pretty-print a PLC name.
Constructors
PrettyConfigName | |
Fields
|
class HasPrettyConfigName config where Source #
A class of configs from which a
PrettyConfigName
can be extracted.
Methods
toPrettyConfigName :: config -> PrettyConfigName Source #
Instances
HasPrettyConfigName PrettyConfigPlc Source # | |
Defined in PlutusCore.Pretty.Plc Methods toPrettyConfigName :: PrettyConfigPlc -> PrettyConfigName Source # |
|
HasPrettyConfigName PrettyConfigPlcStrategy Source # | |
Defined in PlutusCore.Pretty.Plc Methods toPrettyConfigName :: PrettyConfigPlcStrategy -> PrettyConfigName Source # |
|
PrettyConfigName => HasPrettyConfigName ( PrettyConfigReadable configName) configName ~ Source # | |
Defined in PlutusCore.Pretty.Readable Methods toPrettyConfigName :: PrettyConfigReadable configName -> PrettyConfigName Source # |
|
PrettyConfigName => HasPrettyConfigName ( PrettyConfigClassic configName) configName ~ Source # | |
Defined in PlutusCore.Pretty.Classic Methods toPrettyConfigName :: PrettyConfigClassic configName -> PrettyConfigName Source # |
defPrettyConfigName :: PrettyConfigName Source #
The
PrettyConfigName
used by default: print neither
Unique
s, nor name attachments.
debugPrettyConfigName :: PrettyConfigName Source #
The
PrettyConfigName
used for debugging: print
Unique
s, but not name attachments.
Classic view
data PrettyConfigClassic configName Source #
Configuration for the classic pretty-printing.
Constructors
PrettyConfigClassic | |
Fields
|
Instances
type PrettyClassicBy configName = PrettyBy ( PrettyConfigClassic configName) Source #
The "classically pretty-printable" constraint.
consAnnIf :: Pretty ann => PrettyConfigClassic configName -> ann -> [ Doc dann] -> [ Doc dann] Source #
Add a pretty-printed annotation to a list of
Doc
s if the given config enables pretty-printing
of annotations.
prettyClassicDef :: PrettyClassic a => a -> Doc ann Source #
Pretty-print a value in the default mode using the classic view.
prettyClassicDebug :: PrettyClassic a => a -> Doc ann Source #
Pretty-print a value in the debug mode using the classic view.
Readable view
Constructors
ShowKindsYes | |
ShowKindsNo |
data PrettyConfigReadable configName Source #
Configuration for the readable pretty-printing.
Constructors
PrettyConfigReadable | |
Fields
|
Instances
type PrettyReadableBy configName = PrettyBy ( PrettyConfigReadable configName) Source #
The "readably pretty-printable" constraint.
topPrettyConfigReadable :: configName -> ShowKinds -> PrettyConfigReadable configName Source #
A
PrettyConfigReadable
with the fixity specified to
topFixity
.
botPrettyConfigReadable :: configName -> ShowKinds -> PrettyConfigReadable configName Source #
A
PrettyConfigReadable
with the fixity specified to
botFixity
.
Utils
prettyBytes :: ByteString -> Doc ann Source #
data ConstConfig Source #
Constructors
ConstConfig |
Instances
type PrettyConst = PrettyBy ConstConfig Source #
prettyConst :: PrettyConst a => a -> Doc ann Source #