record Signature : Type
A single-sorted finitary signature
Totality: total
Visibility: public export
Constructor: MkSignature : (Nat -> Type) -> Signature
Projection: .OpWithArity : Signature -> Nat -> Type
Type family of operators indexed by their arity.
Hints:
Applicative (Term sig)
sig1 ~> sig2 => Cast (Equation sig1) (Equation sig2)
Cast (SetoidAlgebra sig) Setoid
Cast (Algebra sig) (SetoidAlgebra sig)
Cast (a <~> b) (a ~> b)
Cast (SetoidAlgebra sig) (PresetoidAlgebra sig)
(DecEq (Op sig), DecEq a) => DecEq (Op (EvaluationSig sig a))
(DecEq (Op sig), DecEq a) => DecEq (Term sig a)
(Eq (Op sig), Eq a) => Eq (Op (EvaluationSig sig a))
(Eq (Op sig), Eq a) => Eq (Term sig a)
Functor (Term sig)
Monad (Term sig)
(Ord (Op sig), Ord a) => Ord (Op (EvaluationSig sig a))
(Ord (Op sig), Ord a) => Ord (Term sig a)
pres .signature = sig => Semantic (a <~.~> b) (Op sig)
pres .signature = sig => Semantic (a <~.~> b) (Term sig y)
pres .signature = sig => Semantic (Coproduct a b) (Op sig)
pres .signature = sig => Semantic (Coproduct a b) (Term sig y)
pres .signature = sig => Semantic (Extension a x) (Op sig)
pres .signature = sig => Semantic (Extension a x) (Term sig y)
pres .signature = sig => Semantic (Frex a x) (Op sig)
pres .signature = sig => Semantic (Frex a x) (Term sig y)
pres .signature = sig => Semantic (Model pres) (Op sig)
pres .signature = sig => Semantic (Model pres) (Term sig x)
pres .signature = sig => Semantic (ModelOver pres x) (Op sig)
pres .signature = sig => Semantic (ModelOver pres x) (Term sig y)
pres .signature = sig => Semantic (Free pres x) (Op sig)
pres .signature = sig => Semantic (Free pres x) (Term sig y)
Semantic (Algebra sig) (Op sig)
Semantic (Algebra sig) (Term sig x)
Semantic (SetoidAlgebra sig) (Op sig)
Semantic (SetoidAlgebra sig) (Term sig x)
Show (FreePresetoid sig x u v)
Presentation -> Signature
Uninhabited (Done x = Call f xs)
Uninhabited (Call f xs = Done x)
.OpWithArity : Signature -> Nat -> Type
Type family of operators indexed by their arity.
Totality: total
Visibility: public exportOpWithArity : Signature -> Nat -> Type
Type family of operators indexed by their arity.
Totality: total
Visibility: public exportrecord Op : Signature -> Type
- Totality: total
Visibility: public export
Constructor: MkOp : sig .OpWithArity arity -> Op sig
Projections:
.arity : Op sig -> Nat
.snd : ({rec:0} : Op sig) -> sig .OpWithArity (arity {rec:0})
Hints:
(DecEq (Op sig), DecEq a) => DecEq (Op (EvaluationSig sig a))
(DecEq (Op sig), DecEq a) => DecEq (Term sig a)
(Eq (Op sig), Eq a) => Eq (Op (EvaluationSig sig a))
(Eq (Op sig), Eq a) => Eq (Term sig a)
(Ord (Op sig), Ord a) => Ord (Op (EvaluationSig sig a))
(Ord (Op sig), Ord a) => Ord (Term sig a)
pres .signature = sig => Semantic (a <~.~> b) (Op sig)
pres .signature = sig => Semantic (Coproduct a b) (Op sig)
pres .signature = sig => Semantic (Extension a x) (Op sig)
pres .signature = sig => Semantic (Frex a x) (Op sig)
pres .signature = sig => Semantic (Model pres) (Op sig)
pres .signature = sig => Semantic (ModelOver pres x) (Op sig)
pres .signature = sig => Semantic (Free pres x) (Op sig)
Semantic (Algebra sig) (Op sig)
Semantic (SetoidAlgebra sig) (Op sig)
Uninhabited (Done x = Call f xs)
Uninhabited (Call f xs = Done x)
.arity : Op sig -> Nat
- Totality: total
Visibility: public export arity : Op sig -> Nat
- Totality: total
Visibility: public export .snd : ({rec:0} : Op sig) -> sig .OpWithArity (arity {rec:0})
- Totality: total
Visibility: public export snd : ({rec:0} : Op sig) -> sig .OpWithArity (arity {rec:0})
- Totality: total
Visibility: public export data Precedence : Nat -> Type
- Totality: total
Visibility: public export
Constructors:
Prefix : Nat -> Precedence 1
InfixL : Nat -> Precedence 2
InfixR : Nat -> Precedence 2
Hint: Show (Precedence n)
isInfix : Precedence n -> Bool
- Totality: total
Visibility: export level : Precedence n -> Nat
- Totality: total
Visibility: export interface HasPrecedence : Signature -> Type
- Parameters: sig
Methods:
OpPrecedence : sig .OpWithArity (S n) -> Maybe (Precedence (S n))
OpPrecedence : HasPrecedence sig => sig .OpWithArity (S n) -> Maybe (Precedence (S n))
- Totality: total
Visibility: public export precedence : HasPrecedence sig => (f : Op sig) -> {auto 0 _ : arity f = S n} -> Maybe (Precedence (S n))
- Totality: total
Visibility: export isInfix : HasPrecedence sig => Op sig -> Bool
- Totality: total
Visibility: export record Printer : Signature -> Type -> Type
- Totality: total
Visibility: public export
Constructor: MkPrinter : String -> Show a -> Show (Op sig) -> Show (Op sig) -> HasPrecedence sig -> Bool -> Bool -> Printer sig a
Projections:
.carrier : Printer sig a -> String
Printing the carrier type
.opParens : Printer sig a -> Bool
Should all infix operators be wrapped in parens
.opPatterns : Printer sig a -> Show (Op sig)
Patterns for operators
.opPrec : Printer sig a -> HasPrecedence sig
Operator precedences
.opShow : Printer sig a -> Show (Op sig)
Operator printing
.topParens : Printer sig a -> Bool
Should we wrap a term in parens at the toplevel
.varShow : Printer sig a -> Show a
Variable printing
.carrier : Printer sig a -> String
Printing the carrier type
Totality: total
Visibility: public exportcarrier : Printer sig a -> String
Printing the carrier type
Totality: total
Visibility: public export.varShow : Printer sig a -> Show a
Variable printing
Totality: total
Visibility: public exportvarShow : Printer sig a -> Show a
Variable printing
Totality: total
Visibility: public export.opPatterns : Printer sig a -> Show (Op sig)
Patterns for operators
Totality: total
Visibility: public exportopPatterns : Printer sig a -> Show (Op sig)
Patterns for operators
Totality: total
Visibility: public export.opShow : Printer sig a -> Show (Op sig)
Operator printing
Totality: total
Visibility: public exportopShow : Printer sig a -> Show (Op sig)
Operator printing
Totality: total
Visibility: public export.opPrec : Printer sig a -> HasPrecedence sig
Operator precedences
Totality: total
Visibility: public exportopPrec : Printer sig a -> HasPrecedence sig
Operator precedences
Totality: total
Visibility: public export.opParens : Printer sig a -> Bool
Should all infix operators be wrapped in parens
Totality: total
Visibility: public exportopParens : Printer sig a -> Bool
Should all infix operators be wrapped in parens
Totality: total
Visibility: public export.topParens : Printer sig a -> Bool
Should we wrap a term in parens at the toplevel
Totality: total
Visibility: public exporttopParens : Printer sig a -> Bool
Should we wrap a term in parens at the toplevel
Totality: total
Visibility: public exportwithQuoted : Printer sig a -> Printer sig a
The modified names we are using when printing a context rather than
a term (i.e. a term with an extra variable in scope: the focus).
Totality: total
Visibility: exportdisplay : Printer sig () -> Op sig -> Doc ()
- Totality: total
Visibility: export display : Printer sig () -> Op sig -> Maybe (Doc ())
- Totality: total
Visibility: export display : (sig : Signature) -> Finite (Op sig) => Printer sig () -> Doc ()
- Totality: total
Visibility: export