# Functions
AddVars adds all variables from term to map, where term is either variable, constant or atom.
AddVarsFromClause adds all variables from term to map, where term is either variable, constant or atom.
Bytes constructs a byte string constant.
Escape returns a Mangle source representation of a string.
Float64 constructs a constant symbol that contains a float64.
FormatFloat64 turns a float64 constant into a string.
FormatNumber turns a number constant into a string.
FreshVariable returns a variable different from the ones in used.
List constructs a list constant.
ListCons constructs a list, using pairs.
Map constructs a map constant.
MapCons constructs a map, using pairs.
Name constructs a new name constant while checking that constant symbol starts with a '/' and does not contain empty parts.
NewAtom is a convenience constructor for Atom.
NewBoundDecl returns a new BoundDecl.
NewClause constructs a new clause.
NewDecl returns a new Decl.
NewInclusionConstraint returns a new InclusionConstraint.
NewNegAtom is a convenience constructor for NegAtom.
NewQuery is a convenience constructor for constructing a goal atom.
NewSyntheticDecl returns a new Decl from an atom.
NewSyntheticDeclFromSym returns a new Decl from a predicate symbol.
Number constructs a constant symbol that contains a number.
Pair constructs a pair constant.
ReplaceWildcards returns a new term where each wildcard is replaced with a fresh variables.
SortIndexInto sorts s and populates the index and hashes slice.
String constructs a string constant.
Struct constructs a struct constant.
StructCons constructs a struct, using pairs.
Unescape returns the Mangle source representation of a string and returns a string.
# Constants
ArgModeInput indicates an input to the predicate "+".
ArgModeInputOutput indicates that an argument can be either input or output.
ArgModeOutput indicates an output to the predicate "-".
BytesType is the type of byte strings.
DescrArg is a descriptor containing documentation for an argument.
DescrDeferredPredicate is a descriptor for a deferred predicate.
DescrDesugared is a descriptor used internally to mark desugared declarations.
DescrDoc is a descriptor containing documentation.
DescrExtensional is a descriptor for extensional predicates.
DescrFunDep is a descriptor for a functional dependency.
DescrMergePredicate is a descriptor for a merge predicate.
DescrMode is a descriptor for a supported mode of a predicate.
DescrName is a descriptor used internally for naming a declared object.
DescrPrivate is a descriptor for a predicate with package-private visibility.
DescrReflects is a descriptor for predicates that test ("reflect") name prefixes.
DescrSynthetic is a descriptor for synthetic declarations.
Float64Type is the type of float64 constants.
InputOutputString indicates an argument that can either be input or output.
InputString indicates an argument that is input.
InternalPredicateSuffix gets appended to all internal predicate symbol names.
ListShape indicates that the constant is a list.
MapShape indicates that the constant is a map.
NameType is the type of name constants.
NumberType is the type of number (int64) constants.
OutputString indicates an argument that is output.
PairShape indicates that the constant is a pair.
StringType is the type of string constants.
StructShape indicates that the constant is a struct.
# Variables
AnyBound is a type expression that has all values as elements.
BotBound is a type expression that has no elements.
BytesBound is a type expression that has all bytestrings as elements.
FalseConstant is the "/false" name constant.
FalsePredicate is a predicate symbol to represent an "unconditionally false" proposition.
Float64Bound is a type expression that has all float64s as elements.
ListNil represents an empty list.
MapNil represents an empty map.
NameBound is a type expression that has all names as elements.
NumberBound is a type expression that has all numbers as elements.
StringBound is a type expression that has all strings as elements.
StructNil represents an empty struct.
TrueConstant is the "/true" name constant.
TruePredicate is a predicate symbol to represent an "unconditionally true" proposition.
# Structs
ApplyFn is a function application like "fn:max(X)".
Atom represents an atom (a predicate symbol applied to base term arguments).
BoundDecl is a bound declaration for the arguments of a predicate.
Clause represents a clause (a rule of the form "A." or "A :- B1, ..., Bn.").
Constant represents a constant symbol and other structures (e.g.
ConstSubstPair represents a (variable, constant) pair.
Decl is a declaration.
Eq represents an equality (identity constraint) X = Y or X = c or c = X.
FunctionSym represents a function symbol with a given arity.
FunDep represents a functional dependency for the components of this relation.
InclusionConstraint expresses e.g.
Ineq represents an inequality (apartness constraint) X != Y or X != c or c != X.
NegAtom represents a negated atom.
PredicateSym represents a predicate symbol with a given arity.
Transform represents a transformation of the relation of a clause.
TransformStmt describes how to transform the relation of a rule.
Variable represents a variable by the name.
# Type aliases
ArgMode is an enum specifying whether an argument is input, output, or both.
ConstantType describes the primitive type or shape of a constant.
ConstSubstList is a substitution backed by a slice of (variable, constant) pairs.
ConstSubstMap is a substitution backed by a map from variables to constants.
Mode specifies the mode of the predicate.
SubstMap is a substitution backed by a map from variables to constants.