grisette-0.11.0.0: Symbolic evaluation as a library
Copyright(c) Sirui Lu 2021-2024
LicenseBSD-3-Clause (see the LICENSE file)
Maintainersiruilu@cs.washington.edu
StabilityExperimental
PortabilityGHC only
Safe HaskellNone
LanguageHaskell2010

Grisette.Internal.Core.Data.Class.PPrint

Description

 
Synopsis

Pretty printing

class PPrint a where Source #

Pretty printing of values.

This class is similar to the Pretty class from the Prettyprinter package, but it also provides pretty printing with a given precedence level.

We are able to derive instances of this class for algebraic data types. You may need the DerivingVia and DerivingStrategies extensions.

data X = ... deriving Generic deriving PPrint via (Default X)

The derived instance will pretty print the value with a format similar to the one used by ormolu.

Minimal complete definition

pformat | pformatPrec

Methods

pformat :: a -> Doc ann Source #

pformatPrec :: Int -> a -> Doc ann Source #

pformatList :: [a] -> Doc ann Source #

Instances

Instances details
PPrint ByteString Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint All Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: All -> Doc ann Source #

pformatPrec :: Int -> All -> Doc ann Source #

pformatList :: [All] -> Doc ann Source #

PPrint Any Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Any -> Doc ann Source #

pformatPrec :: Int -> Any -> Doc ann Source #

pformatList :: [Any] -> Doc ann Source #

PPrint Int16 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Int16 -> Doc ann Source #

pformatPrec :: Int -> Int16 -> Doc ann Source #

pformatList :: [Int16] -> Doc ann Source #

PPrint Int32 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Int32 -> Doc ann Source #

pformatPrec :: Int -> Int32 -> Doc ann Source #

pformatList :: [Int32] -> Doc ann Source #

PPrint Int64 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Int64 -> Doc ann Source #

pformatPrec :: Int -> Int64 -> Doc ann Source #

pformatList :: [Int64] -> Doc ann Source #

PPrint Int8 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Int8 -> Doc ann Source #

pformatPrec :: Int -> Int8 -> Doc ann Source #

pformatList :: [Int8] -> Doc ann Source #

PPrint Word16 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Word16 -> Doc ann Source #

pformatPrec :: Int -> Word16 -> Doc ann Source #

pformatList :: [Word16] -> Doc ann Source #

PPrint Word32 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Word32 -> Doc ann Source #

pformatPrec :: Int -> Word32 -> Doc ann Source #

pformatList :: [Word32] -> Doc ann Source #

PPrint Word64 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Word64 -> Doc ann Source #

pformatPrec :: Int -> Word64 -> Doc ann Source #

pformatList :: [Word64] -> Doc ann Source #

PPrint Word8 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Word8 -> Doc ann Source #

pformatPrec :: Int -> Word8 -> Doc ann Source #

pformatList :: [Word8] -> Doc ann Source #

PPrint Ordering Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint AssertionError Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint VerificationConditions Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint Identifier Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint Symbol Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Symbol -> Doc ann Source #

pformatPrec :: Int -> Symbol -> Doc ann Source #

pformatList :: [Symbol] -> Doc ann Source #

PPrint SolvingFailure Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Solver

PPrint AlgReal Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint FPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint NotRepresentableFPError Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint ModelValue Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint Model Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Model -> Doc ann Source #

pformatPrec :: Int -> Model -> Doc ann Source #

pformatList :: [Model] -> Doc ann Source #

PPrint SomeTerm Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint SomeBVException Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

PPrint SymAlgReal Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint SymBool Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint SymInteger Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint Text Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Text -> Doc ann Source #

pformatPrec :: Int -> Text -> Doc ann Source #

pformatList :: [Text] -> Doc ann Source #

PPrint Integer Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint () Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: () -> Doc ann Source #

pformatPrec :: Int -> () -> Doc ann Source #

pformatList :: [()] -> Doc ann Source #

PPrint Bool Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Bool -> Doc ann Source #

pformatPrec :: Int -> Bool -> Doc ann Source #

pformatList :: [Bool] -> Doc ann Source #

PPrint Char Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

pformat :: Char -> Doc ann Source #

pformatPrec :: Int -> Char -> Doc ann Source #

pformatList :: [Char] -> Doc ann Source #

PPrint Double Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Double -> Doc ann Source #

pformatPrec :: Int -> Double -> Doc ann Source #

pformatList :: [Double] -> Doc ann Source #

PPrint Float Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Float -> Doc ann Source #

pformatPrec :: Int -> Float -> Doc ann Source #

pformatList :: [Float] -> Doc ann Source #

PPrint Int Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Int -> Doc ann Source #

pformatPrec :: Int -> Int -> Doc ann Source #

pformatList :: [Int] -> Doc ann Source #

PPrint Word Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Word -> Doc ann Source #

pformatPrec :: Int -> Word -> Doc ann Source #

pformatList :: [Word] -> Doc ann Source #

(Generic a, GPPrint Arity0 (Rep a)) => PPrint (Default a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

pformat :: Default a -> Doc ann Source #

pformatPrec :: Int -> Default a -> Doc ann Source #

pformatList :: [Default a] -> Doc ann Source #

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

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Identity a -> Doc ann Source #

pformatPrec :: Int -> Identity a -> Doc ann Source #

pformatList :: [Identity a] -> Doc ann Source #

PPrint a => PPrint (First a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: First a -> Doc ann Source #

pformatPrec :: Int -> First a -> Doc ann Source #

pformatList :: [First a] -> Doc ann Source #

PPrint a => PPrint (Last a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Last a -> Doc ann Source #

pformatPrec :: Int -> Last a -> Doc ann Source #

pformatList :: [Last a] -> Doc ann Source #

PPrint a => PPrint (Down a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Down a -> Doc ann Source #

pformatPrec :: Int -> Down a -> Doc ann Source #

pformatList :: [Down a] -> Doc ann Source #

PPrint a => PPrint (Dual a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Dual a -> Doc ann Source #

pformatPrec :: Int -> Dual a -> Doc ann Source #

pformatList :: [Dual a] -> Doc ann Source #

PPrint a => PPrint (Product a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Product a -> Doc ann Source #

pformatPrec :: Int -> Product a -> Doc ann Source #

pformatList :: [Product a] -> Doc ann Source #

PPrint a => PPrint (Sum a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Sum a -> Doc ann Source #

pformatPrec :: Int -> Sum a -> Doc ann Source #

pformatList :: [Sum a] -> Doc ann Source #

PPrint p => PPrint (Par1 p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Par1 p -> Doc ann Source #

pformatPrec :: Int -> Par1 p -> Doc ann Source #

pformatList :: [Par1 p] -> Doc ann Source #

PPrint a => PPrint (Ratio a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Ratio a -> Doc ann Source #

pformatPrec :: Int -> Ratio a -> Doc ann Source #

pformatList :: [Ratio a] -> Doc ann Source #

PPrint a => PPrint (Union a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Control.Monad.Union

Methods

pformat :: Union a -> Doc ann Source #

pformatPrec :: Int -> Union a -> Doc ann Source #

pformatList :: [Union a] -> Doc ann Source #

PPrint a => PPrint (UnionBase a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.UnionBase

Methods

pformat :: UnionBase a -> Doc ann Source #

pformatPrec :: Int -> UnionBase a -> Doc ann Source #

pformatList :: [UnionBase a] -> Doc ann Source #

(KnownNat n, 1 <= n) => PPrint (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: IntN n -> Doc ann Source #

pformatPrec :: Int -> IntN n -> Doc ann Source #

pformatList :: [IntN n] -> Doc ann Source #

(KnownNat n, 1 <= n) => PPrint (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: WordN n -> Doc ann Source #

pformatPrec :: Int -> WordN n -> Doc ann Source #

pformatList :: [WordN n] -> Doc ann Source #

PPrint (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

PPrint (Term t) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Term t -> Doc ann Source #

pformatPrec :: Int -> Term t -> Doc ann Source #

pformatList :: [Term t] -> Doc ann Source #

PPrint (SymbolSet knd) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: SymbolSet knd -> Doc ann Source #

pformatPrec :: Int -> SymbolSet knd -> Doc ann Source #

pformatList :: [SymbolSet knd] -> Doc ann Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => PPrint (bv n)) => PPrint (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

pformat :: SomeBV bv -> Doc ann Source #

pformatPrec :: Int -> SomeBV bv -> Doc ann Source #

pformatList :: [SomeBV bv] -> Doc ann Source #

(KnownNat n, 1 <= n) => PPrint (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: SymIntN n -> Doc ann Source #

pformatPrec :: Int -> SymIntN n -> Doc ann Source #

pformatList :: [SymIntN n] -> Doc ann Source #

(KnownNat n, 1 <= n) => PPrint (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: SymWordN n -> Doc ann Source #

pformatPrec :: Int -> SymWordN n -> Doc ann Source #

pformatList :: [SymWordN n] -> Doc ann Source #

PPrint a => PPrint (HashSet a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: HashSet a -> Doc ann Source #

pformatPrec :: Int -> HashSet a -> Doc ann Source #

pformatList :: [HashSet a] -> Doc ann Source #

PPrint a => PPrint (Maybe a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Maybe a -> Doc ann Source #

pformatPrec :: Int -> Maybe a -> Doc ann Source #

pformatList :: [Maybe a] -> Doc ann Source #

PPrint a => PPrint [a] Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

pformat :: [a] -> Doc ann Source #

pformatPrec :: Int -> [a] -> Doc ann Source #

pformatList :: [[a]] -> Doc ann Source #

(Generic1 f, GPPrint Arity1 (Rep1 f), PPrint a) => PPrint (Default1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

pformat :: Default1 f a -> Doc ann Source #

pformatPrec :: Int -> Default1 f a -> Doc ann Source #

pformatList :: [Default1 f a] -> Doc ann Source #

(PPrint a1, PPrint a2) => PPrint (Either a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Either a1 a2 -> Doc ann Source #

pformatPrec :: Int -> Either a1 a2 -> Doc ann Source #

pformatList :: [Either a1 a2] -> Doc ann Source #

PPrint (Proxy a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Proxy a -> Doc ann Source #

pformatPrec :: Int -> Proxy a -> Doc ann Source #

pformatList :: [Proxy a] -> Doc ann Source #

PPrint (U1 p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: U1 p -> Doc ann Source #

pformatPrec :: Int -> U1 p -> Doc ann Source #

pformatList :: [U1 p] -> Doc ann Source #

PPrint (V1 p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: V1 p -> Doc ann Source #

pformatPrec :: Int -> V1 p -> Doc ann Source #

pformatList :: [V1 p] -> Doc ann Source #

(PPrint cex, PPrint exception) => PPrint (VerifierResult cex exception) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.CEGISSolver

Methods

pformat :: VerifierResult cex exception -> Doc ann Source #

pformatPrec :: Int -> VerifierResult cex exception -> Doc ann Source #

pformatList :: [VerifierResult cex exception] -> Doc ann Source #

ValidFP eb sb => PPrint (FP eb sb) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: FP eb sb -> Doc ann Source #

pformatPrec :: Int -> FP eb sb -> Doc ann Source #

pformatList :: [FP eb sb] -> Doc ann Source #

PPrint (a --> b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a --> b) -> Doc ann Source #

pformatPrec :: Int -> (a --> b) -> Doc ann Source #

pformatList :: [a --> b] -> Doc ann Source #

PPrint (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: TypedSymbol knd t -> Doc ann Source #

pformatPrec :: Int -> TypedSymbol knd t -> Doc ann Source #

pformatList :: [TypedSymbol knd t] -> Doc ann Source #

ValidFP eb sb => PPrint (SymFP eb sb) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: SymFP eb sb -> Doc ann Source #

pformatPrec :: Int -> SymFP eb sb -> Doc ann Source #

pformatList :: [SymFP eb sb] -> Doc ann Source #

PPrint (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (sa -~> sb) -> Doc ann Source #

pformatPrec :: Int -> (sa -~> sb) -> Doc ann Source #

pformatList :: [sa -~> sb] -> Doc ann Source #

PPrint (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (sa =~> sb) -> Doc ann Source #

pformatPrec :: Int -> (sa =~> sb) -> Doc ann Source #

pformatList :: [sa =~> sb] -> Doc ann Source #

(Show a, Show b) => PPrint (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a =-> b) -> Doc ann Source #

pformatPrec :: Int -> (a =-> b) -> Doc ann Source #

pformatList :: [a =-> b] -> Doc ann Source #

(PPrint1 a1, PPrint a2) => PPrint (MaybeT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: MaybeT a1 a2 -> Doc ann Source #

pformatPrec :: Int -> MaybeT a1 a2 -> Doc ann Source #

pformatList :: [MaybeT a1 a2] -> Doc ann Source #

(PPrint k, PPrint v) => PPrint (HashMap k v) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: HashMap k v -> Doc ann Source #

pformatPrec :: Int -> HashMap k v -> Doc ann Source #

pformatList :: [HashMap k v] -> Doc ann Source #

(PPrint a1, PPrint a2) => PPrint (a1, a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2) -> Doc ann Source #

pformatList :: [(a1, a2)] -> Doc ann Source #

PPrint a => PPrint (Const a b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Const a b -> Doc ann Source #

pformatPrec :: Int -> Const a b -> Doc ann Source #

pformatList :: [Const a b] -> Doc ann Source #

PPrint (f a) => PPrint (Ap f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Ap f a -> Doc ann Source #

pformatPrec :: Int -> Ap f a -> Doc ann Source #

pformatList :: [Ap f a] -> Doc ann Source #

PPrint (f a) => PPrint (Alt f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Alt f a -> Doc ann Source #

pformatPrec :: Int -> Alt f a -> Doc ann Source #

pformatList :: [Alt f a] -> Doc ann Source #

PPrint (f p) => PPrint (Rec1 f p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Rec1 f p -> Doc ann Source #

pformatPrec :: Int -> Rec1 f p -> Doc ann Source #

pformatList :: [Rec1 f p] -> Doc ann Source #

(PPrint a1, PPrint1 a2, PPrint a3) => PPrint (ExceptT a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: ExceptT a1 a2 a3 -> Doc ann Source #

pformatPrec :: Int -> ExceptT a1 a2 a3 -> Doc ann Source #

pformatList :: [ExceptT a1 a2 a3] -> Doc ann Source #

(PPrint1 m, PPrint a) => PPrint (IdentityT m a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: IdentityT m a -> Doc ann Source #

pformatPrec :: Int -> IdentityT m a -> Doc ann Source #

pformatList :: [IdentityT m a] -> Doc ann Source #

(PPrint a1, PPrint1 a2, PPrint a3) => PPrint (WriterT a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: WriterT a1 a2 a3 -> Doc ann Source #

pformatPrec :: Int -> WriterT a1 a2 a3 -> Doc ann Source #

pformatList :: [WriterT a1 a2 a3] -> Doc ann Source #

(PPrint a1, PPrint1 a2, PPrint a3) => PPrint (WriterT a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: WriterT a1 a2 a3 -> Doc ann Source #

pformatPrec :: Int -> WriterT a1 a2 a3 -> Doc ann Source #

pformatList :: [WriterT a1 a2 a3] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3) => PPrint (a1, a2, a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3) -> Doc ann Source #

pformatList :: [(a1, a2, a3)] -> Doc ann Source #

(PPrint (l a), PPrint (r a)) => PPrint (Product l r a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Product l r a -> Doc ann Source #

pformatPrec :: Int -> Product l r a -> Doc ann Source #

pformatList :: [Product l r a] -> Doc ann Source #

(PPrint (l a), PPrint (r a)) => PPrint (Sum l r a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Sum l r a -> Doc ann Source #

pformatPrec :: Int -> Sum l r a -> Doc ann Source #

pformatList :: [Sum l r a] -> Doc ann Source #

(PPrint (f p), PPrint (g p)) => PPrint ((f :*: g) p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (f :*: g) p -> Doc ann Source #

pformatPrec :: Int -> (f :*: g) p -> Doc ann Source #

pformatList :: [(f :*: g) p] -> Doc ann Source #

(PPrint (f p), PPrint (g p)) => PPrint ((f :+: g) p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (f :+: g) p -> Doc ann Source #

pformatPrec :: Int -> (f :+: g) p -> Doc ann Source #

pformatList :: [(f :+: g) p] -> Doc ann Source #

PPrint c => PPrint (K1 i c p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: K1 i c p -> Doc ann Source #

pformatPrec :: Int -> K1 i c p -> Doc ann Source #

pformatList :: [K1 i c p] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4) => PPrint (a1, a2, a3, a4) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4)] -> Doc ann Source #

PPrint (f (g a)) => PPrint (Compose f g a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: Compose f g a -> Doc ann Source #

pformatPrec :: Int -> Compose f g a -> Doc ann Source #

pformatList :: [Compose f g a] -> Doc ann Source #

PPrint (f (g p)) => PPrint ((f :.: g) p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (f :.: g) p -> Doc ann Source #

pformatPrec :: Int -> (f :.: g) p -> Doc ann Source #

pformatList :: [(f :.: g) p] -> Doc ann Source #

PPrint (f p) => PPrint (M1 i c f p) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: M1 i c f p -> Doc ann Source #

pformatPrec :: Int -> M1 i c f p -> Doc ann Source #

pformatList :: [M1 i c f p] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5) => PPrint (a1, a2, a3, a4, a5) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6) => PPrint (a1, a2, a3, a4, a5, a6) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7) => PPrint (a1, a2, a3, a4, a5, a6, a7) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12, PPrint a13) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12, PPrint a13, PPrint a14) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12, PPrint a13, PPrint a14, PPrint a15) => PPrint (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> Doc ann Source #

pformatPrec :: Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> Doc ann Source #

pformatList :: [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)] -> Doc ann Source #

docToTextWith :: LayoutOptions -> Doc ann -> Text Source #

Convenience function to layout and render a Doc to Text.

You can control the layout with LayoutOptions.

docToTextWithWidth :: Int -> Doc ann -> Text Source #

Convenience function to layout and render a Doc to Text.

You can control the layout with a single number of the width limit.

docToText :: Doc ann -> Text Source #

Convenience function to layout and render a Doc to Text.

The default layout options defaultLayoutOptions are used.

pformatTextWith :: PPrint a => LayoutOptions -> a -> Text Source #

Convenience function to format a value to Text.

You can control the layout with LayoutOptions.

pformatTextWithWidth :: PPrint a => Int -> a -> Text Source #

Convenience function to format a value to Text.

You can control the layout with a single number of the width limit.

pformatText :: PPrint a => a -> Text Source #

Convenience function to format a value to Text.

The default layout options defaultLayoutOptions are used.

pprint :: PPrint a => a -> IO () Source #

Pretty print a value to the standard output.

class (forall a. PPrint a => PPrint (f a)) => PPrint1 (f :: Type -> Type) where Source #

Lifting of the PPrint class to unary type constructors.

Minimal complete definition

liftPFormatPrec

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> f a -> Doc ann Source #

Lift a pretty-printer to a unary type constructor.

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [f a] -> Doc ann Source #

Lift a pretty-printer to list of values with unary type constructors.

Instances

Instances details
PPrint1 Identity Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Identity a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Identity a] -> Doc ann Source #

PPrint1 First Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> First a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [First a] -> Doc ann Source #

PPrint1 Last Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Last a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Last a] -> Doc ann Source #

PPrint1 Down Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Down a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Down a] -> Doc ann Source #

PPrint1 Dual Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Dual a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Dual a] -> Doc ann Source #

PPrint1 Product Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Product a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Product a] -> Doc ann Source #

PPrint1 Sum Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Sum a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Sum a] -> Doc ann Source #

PPrint1 Union Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Control.Monad.Union

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Union a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Union a] -> Doc ann Source #

PPrint1 UnionBase Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.UnionBase

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> UnionBase a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [UnionBase a] -> Doc ann Source #

PPrint1 HashSet Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> HashSet a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [HashSet a] -> Doc ann Source #

PPrint1 Maybe Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Maybe a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Maybe a] -> Doc ann Source #

PPrint1 [] Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> [a] -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [[a]] -> Doc ann Source #

(Generic1 f, GPPrint Arity1 (Rep1 f)) => PPrint1 (Default1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Default1 f a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Default1 f a] -> Doc ann Source #

PPrint a => PPrint1 (Either a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> Int -> Either a a0 -> Doc ann Source #

liftPFormatList :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> [Either a a0] -> Doc ann Source #

PPrint1 (Proxy :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Proxy a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Proxy a] -> Doc ann Source #

PPrint1 a => PPrint1 (MaybeT a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> Int -> MaybeT a a0 -> Doc ann Source #

liftPFormatList :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> [MaybeT a a0] -> Doc ann Source #

PPrint k => PPrint1 (HashMap k) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> HashMap k a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [HashMap k a] -> Doc ann Source #

PPrint a => PPrint1 ((,) a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> Int -> (a, a0) -> Doc ann Source #

liftPFormatList :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> [(a, a0)] -> Doc ann Source #

PPrint a => PPrint1 (Const a :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> Int -> Const a a0 -> Doc ann Source #

liftPFormatList :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> [Const a a0] -> Doc ann Source #

PPrint1 f => PPrint1 (Ap f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Ap f a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Ap f a] -> Doc ann Source #

PPrint1 f => PPrint1 (Alt f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Alt f a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Alt f a] -> Doc ann Source #

(PPrint a1, PPrint1 a2) => PPrint1 (ExceptT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> ExceptT a1 a2 a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [ExceptT a1 a2 a] -> Doc ann Source #

PPrint1 m => PPrint1 (IdentityT m) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> IdentityT m a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [IdentityT m a] -> Doc ann Source #

(PPrint a1, PPrint1 a2) => PPrint1 (WriterT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> WriterT a1 a2 a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [WriterT a1 a2 a] -> Doc ann Source #

(PPrint a1, PPrint1 a2) => PPrint1 (WriterT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> WriterT a1 a2 a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [WriterT a1 a2 a] -> Doc ann Source #

(PPrint a1, PPrint a2) => PPrint1 ((,,) a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a)] -> Doc ann Source #

(PPrint1 l, PPrint1 r) => PPrint1 (Product l r) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Product l r a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Product l r a] -> Doc ann Source #

(PPrint1 l, PPrint1 r) => PPrint1 (Sum l r) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Sum l r a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Sum l r a] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3) => PPrint1 ((,,,) a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a)] -> Doc ann Source #

(PPrint1 f, PPrint1 g) => PPrint1 (Compose f g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> Compose f g a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [Compose f g a] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4) => PPrint1 ((,,,,) a1 a2 a3 a4) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5) => PPrint1 ((,,,,,) a1 a2 a3 a4 a5) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6) => PPrint1 ((,,,,,,) a1 a2 a3 a4 a5 a6) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7) => PPrint1 ((,,,,,,,) a1 a2 a3 a4 a5 a6 a7) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8) => PPrint1 ((,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9) => PPrint1 ((,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10) => PPrint1 ((,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11) => PPrint1 ((,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12) => PPrint1 ((,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12, PPrint a13) => PPrint1 ((,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12, PPrint a13, PPrint a14) => PPrint1 ((,,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a) -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a)] -> Doc ann Source #

pformatPrec1 :: (PPrint1 f, PPrint a) => Int -> f a -> Doc ann Source #

Lift the standard pretty-printer (pformatPrec, pformatList) to unary type constructors.

pformatList1 :: (PPrint1 f, PPrint a) => [f a] -> Doc ann Source #

Lift the standard pretty-printer (pformatPrec, pformatList) to list of values with unary type constructors.

class (forall a. PPrint a => PPrint1 (f a), forall a b. (PPrint a, PPrint b) => PPrint (f a b)) => PPrint2 (f :: Type -> Type -> Type) where Source #

Lifting of the PPrint class to binary type constructors.

Minimal complete definition

liftPFormatPrec2

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> f a b -> Doc ann Source #

Lift two pretty-printers to a binary type constructor.

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [f a b] -> Doc ann Source #

Lift two pretty-printers to list of values with binary type constructors.

Instances

Instances details
PPrint2 Either Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> Either a b -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [Either a b] -> Doc ann Source #

PPrint2 HashMap Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> HashMap a b -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [HashMap a b] -> Doc ann Source #

PPrint2 (,) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a, b)] -> Doc ann Source #

PPrint a => PPrint2 ((,,) a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a, a0, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a0 -> Doc ann) -> ([a0] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a, a0, b)] -> Doc ann Source #

(PPrint a1, PPrint a2) => PPrint2 ((,,,) a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3) => PPrint2 ((,,,,) a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4) => PPrint2 ((,,,,,) a1 a2 a3 a4) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5) => PPrint2 ((,,,,,,) a1 a2 a3 a4 a5) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6) => PPrint2 ((,,,,,,,) a1 a2 a3 a4 a5 a6) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7) => PPrint2 ((,,,,,,,,) a1 a2 a3 a4 a5 a6 a7) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8) => PPrint2 ((,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9) => PPrint2 ((,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10) => PPrint2 ((,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11) => PPrint2 ((,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12) => PPrint2 ((,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a, b)] -> Doc ann Source #

(PPrint a1, PPrint a2, PPrint a3, PPrint a4, PPrint a5, PPrint a6, PPrint a7, PPrint a8, PPrint a9, PPrint a10, PPrint a11, PPrint a12, PPrint a13) => PPrint2 ((,,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> Int -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a, b) -> Doc ann Source #

liftPFormatList2 :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> (Int -> b -> Doc ann) -> ([b] -> Doc ann) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a, b)] -> Doc ann Source #

pformatPrec2 :: (PPrint2 f, PPrint a, PPrint b) => Int -> f a b -> Doc ann Source #

Lift the standard pretty-printer (pformatPrec, pformatList) to binary type constructors.

pformatList2 :: (PPrint2 f, PPrint a, PPrint b) => [f a b] -> Doc ann Source #

Lift the standard pretty-printer (pformatPrec, pformatList) to list of values with binary type constructors.

Generic PPrint

genericPFormatPrec :: (Generic a, GPPrint Arity0 (Rep a)) => Int -> a -> Doc ann Source #

Generic pformatPrec function.

genericLiftPFormatPrec :: (Generic1 f, GPPrint Arity1 (Rep1 f)) => (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> f a -> Doc ann Source #

Generic liftPFormatPrec function.

genericPFormatList :: (Generic a, GPPrint Arity0 (Rep a)) => [a] -> Doc ann Source #

Generic pformatList function.

genericLiftPFormatList :: (Generic1 f, GPPrint Arity1 (Rep1 f)) => (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [f a] -> Doc ann Source #

Generic liftPFormatList function.

data family PPrintArgs arity a ann Source #

The arguments to the generic PPrint class.

Instances

Instances details
data PPrintArgs Arity0 _ _1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

data PPrintArgs Arity1 a ann Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

data PPrintArgs Arity1 a ann = PPrintArgs1 (Int -> a -> Doc ann) ([a] -> Doc ann)

class GPPrint arity (f :: Type -> Type) where Source #

Generic PPrint class.

Minimal complete definition

gpformatPrec

Methods

gpformatPrec :: PPrintArgs arity a ann -> PPrintType -> Int -> f a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a ann -> [f a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a ann -> f a -> Bool Source #

Instances

Instances details
GPPrint Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

GPPrint arity (U1 :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a ann -> PPrintType -> Int -> U1 a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a ann -> [U1 a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a ann -> U1 a -> Bool Source #

GPPrint arity (V1 :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a ann -> PPrintType -> Int -> V1 a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a ann -> [V1 a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a ann -> V1 a -> Bool Source #

PPrint1 f => GPPrint Arity1 (Rec1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs Arity1 a ann -> PPrintType -> Int -> Rec1 f a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs Arity1 a ann -> [Rec1 f a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs Arity1 a ann -> Rec1 f a -> Bool Source #

(GPPrint arity a, GPPrint arity b) => GPPrint arity (a :*: b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a0 ann -> PPrintType -> Int -> (a :*: b) a0 -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a0 ann -> [(a :*: b) a0] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a0 ann -> (a :*: b) a0 -> Bool Source #

(GPPrint arity a, GPPrint arity b) => GPPrint arity (a :+: b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a0 ann -> PPrintType -> Int -> (a :+: b) a0 -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a0 ann -> [(a :+: b) a0] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a0 ann -> (a :+: b) a0 -> Bool Source #

(GPPrint arity a, Constructor c) => GPPrint arity (C1 c a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a0 ann -> PPrintType -> Int -> C1 c a a0 -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a0 ann -> [C1 c a a0] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a0 ann -> C1 c a a0 -> Bool Source #

GPPrint arity a => GPPrint arity (D1 d a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a0 ann -> PPrintType -> Int -> D1 d a a0 -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a0 ann -> [D1 d a a0] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a0 ann -> D1 d a a0 -> Bool Source #

PPrint c => GPPrint arity (K1 i c :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a ann -> PPrintType -> Int -> K1 i c a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a ann -> [K1 i c a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a ann -> K1 i c a -> Bool Source #

(Selector s, GPPrint arity a) => GPPrint arity (S1 s a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs arity a0 ann -> PPrintType -> Int -> S1 s a a0 -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs arity a0 ann -> [S1 s a a0] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs arity a0 ann -> S1 s a a0 -> Bool Source #

(PPrint1 f, GPPrint Arity1 g) => GPPrint Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.PPrint

Methods

gpformatPrec :: PPrintArgs Arity1 a ann -> PPrintType -> Int -> (f :.: g) a -> Doc ann Source #

gpformatList :: HasCallStack => PPrintArgs Arity1 a ann -> [(f :.: g) a] -> Doc ann Source #

gisNullary :: HasCallStack => PPrintArgs Arity1 a ann -> (f :.: g) a -> Bool Source #

data PPrintType Source #

Controls how to pretty-print a generic representation.

Constructors

Rec 
Tup 
Pref 
Inf String Int 

Helpers

groupedEnclose :: Doc ann -> Doc ann -> Doc ann -> Doc ann Source #

Enclose a document with left and right documents.

The pretty printer will try to layout the document in a single line, but the right document may be split to a newline.

condEnclose :: Bool -> Doc ann -> Doc ann -> Doc ann -> Doc ann Source #

Conditionally enclose a document with left and right documents.

If the condition is True, then this function is equivalent to groupedEnclose.

pformatWithConstructor :: Int -> Doc ann -> [Doc ann] -> Doc ann Source #

Pretty print a list of fields with a constructor.

Aligns the fields and nests them by 2 spaces.

pformatWithConstructorNoAlign :: Int -> Doc ann -> [Doc ann] -> Doc ann Source #

Pretty print a list of fields with a constructor without alignment.

viaShowsPrec :: (Int -> a -> ShowS) -> Int -> a -> Doc ann Source #

Pretty print a value using showsPrec.

Re-exports