Uses of Interface
net.hydromatic.morel.util.Unifier.Term
Packages that use Unifier.Term
Package
Description
Validates programs (represented as
AstNode),
deduces their type, and compiles them into code that can be evaluated.Utilities.
-
Uses of Unifier.Term in net.hydromatic.morel.compile
Fields in net.hydromatic.morel.compile declared as Unifier.TermModifier and TypeFieldDescription(package private) final Unifier.TermTypeResolver.PatTerm.termprivate final Unifier.TermTypeResolver.SimpleTermFactory.term(package private) final Unifier.TermTypeResolver.TermVariable.termFields in net.hydromatic.morel.compile with type parameters of type Unifier.TermModifier and TypeFieldDescription(package private) final UnaryOperator<Unifier.Term> TypeResolver.PatTerm.accessorprivate final Map<AstNode, Unifier.Term> TypeResolver.mapprivate final Map<AstNode, Unifier.Term> TypeMap.nodeTypeTermsprivate final Function<TypeSystem, Unifier.Term> TypeResolver.BindTypeEnv.termFactoryMethods in net.hydromatic.morel.compile that return Unifier.TermModifier and TypeMethodDescriptionTypeResolver.SimpleTermFactory.apply(TypeSystem typeSystem) TypeResolver.BindTypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) TypeResolver.EmptyTypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) TypeResolver.EnvironmentTypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) TypeResolver.TypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) Returns a term for the variable with a given name, creating if necessary.private Unifier.TermTypeResolver.recordTerm(NavigableMap<String, ? extends Unifier.Term> labelTypes) private Unifier.TermTypeResolver.toTerm(PrimitiveType type) private Unifier.TermTypeResolver.toTerm(Type type, TypeResolver.Subst subst) private Unifier.TermTypeResolver.tupleTerm(Collection<? extends Unifier.Term> types) Methods in net.hydromatic.morel.compile that return types with arguments of type Unifier.TermModifier and TypeMethodDescriptionprivate List<Unifier.Term> TypeResolver.toTerms(Collection<? extends Type> types, TypeResolver.Subst subst) private List<Unifier.Term> TypeResolver.toTerms(List<? extends Type> types, TypeResolver.Subst subst) private Function<TypeSystem, Unifier.Term> TypeResolver.TypeEnvHolder.typeToTerm(Type type) Methods in net.hydromatic.morel.compile with parameters of type Unifier.TermModifier and TypeMethodDescriptionprivate Unifier.SequenceTypeResolver.argTerm(Unifier.Term... args) private Unifier.SequenceTypeResolver.bagTerm(Unifier.Term term) default TypeResolver.TypeEnvTypeResolver.TypeEnv.bind(String name, Binding.Kind kind, Unifier.Term term) default TypeResolver.TypeEnvTypeResolver.TypeEnv.bind(String name, Unifier.Term term) voidTypeResolver.TypeEnvHolder.bind(String name, Unifier.Term term) private Unifier.VariableTypeResolver.equiv(Unifier.Variable v, Unifier.Term term) Declares that a term is equivalent to a variable.private Unifier.SequenceTypeResolver.fnTerm(Unifier.Term arg, Unifier.Term result) default Binding.KindTypeResolver.TypeEnv.getKind(String name, Unifier.Term term) private voidTypeResolver.isListIfBothAreLists(Unifier.Term c0, Unifier.Variable v0, Unifier.Term c1, Unifier.Variable v1, Unifier.Variable c, Unifier.Variable v) Adds a constraint thatc0is a bag or list (ofv0), andc1is a bag or list (ofv1); if both are lists thencis a list ofv, otherwisecis a bag ofv.private Unifier.SequenceTypeResolver.listTerm(Unifier.Term term) private <E extends AstNode>
ETypeResolver.reg(E node, Unifier.Term term) Registers that an AST node maps to a type term.private <E extends AstNode>
ETypeResolver.reg(E node, Unifier.Variable variable, Unifier.Term term) Registers that an AST node maps to a type term and is equivalent to a variable.(package private) TypeTypeMap.termToType(Unifier.Term term) private Unifier.VariableTypeResolver.toVariable(Unifier.Term term) Converts a term to a variable.Method parameters in net.hydromatic.morel.compile with type arguments of type Unifier.TermModifier and TypeMethodDescriptiondefault TypeResolver.TypeEnvTypeResolver.TypeEnv.bind(String name, Binding.Kind kind, Function<TypeSystem, Unifier.Term> termFactory) private static TypeResolver.TypeEnvTypeResolver.bindAll(TypeResolver.TypeEnv env, PairList<Ast.IdPat, Unifier.Term> termMap) voidTypeResolver.BindTypeEnv.collectInstances(TypeSystem typeSystem, String name, Consumer<Unifier.Term> consumer) default voidTypeResolver.TypeEnv.collectInstances(TypeSystem typeSystem, String name, Consumer<Unifier.Term> consumer) Collects terms that are instance ofname.private voidTypeResolver.constrain(Unifier.Variable arg, Unifier.Variable result, PairList<Unifier.Term, Unifier.Term> argResults) Registers that a type variable is equivalent to at least one of a list of terms.private voidTypeResolver.constrain(Unifier.Variable arg, Unifier.Variable result, PairList<Unifier.Term, Unifier.Term> argResults) Registers that a type variable is equivalent to at least one of a list of terms.private Ast.DeclTypeResolver.deduceDataTypeDeclType(TypeResolver.TypeEnv env, Ast.DatatypeDecl datatypeDecl, PairList<Ast.IdPat, Unifier.Term> termMap) private Ast.DeclTypeResolver.deduceDeclType(TypeResolver.TypeEnv env, Ast.Decl node, PairList<Ast.IdPat, Unifier.Term> termMap) private Ast.MatchTypeResolver.deduceMatchType(TypeResolver.TypeEnv env, Ast.Match match, BiConsumer<Ast.IdPat, Unifier.Term> termMap, Unifier.Variable argVariable, Unifier.Variable resultVariable) private Ast.DeclTypeResolver.deduceOverDeclType(TypeResolver.TypeEnv env, Ast.OverDecl overDecl, PairList<Ast.IdPat, Unifier.Term> termMap) private voidTypeResolver.deducePatType(TypeResolver.TypeEnv env, Ast.Pat pat, Consumer<TypeResolver.PatTerm> termMap, @Nullable NavigableSet<String> labelNames, Unifier.Variable v, UnaryOperator<Unifier.Term> accessor) Derives a type term for a pattern, collecting the names of pattern variables.private AstNodeTypeResolver.deduceValBindType(TypeResolver.TypeEnv env, Ast.ValBind valBind, PairList<Ast.IdPat, Unifier.Term> termMap, Unifier.Variable vPat) private Ast.DeclTypeResolver.deduceValDeclType(TypeResolver.TypeEnv env, Ast.ValDecl valDecl, PairList<Ast.IdPat, Unifier.Term> termMap) private voidTypeResolver.isListIfAllAreLists(List<Unifier.Term> args, Unifier.Variable c, Unifier.Variable v) Adds a constraint that the terms inargsare all a bag or list (ofv); if all are lists thencis a list ofv, otherwisecis a bag ofv.private Unifier.TermTypeResolver.recordTerm(NavigableMap<String, ? extends Unifier.Term> labelTypes) private Unifier.TermTypeResolver.tupleTerm(Collection<? extends Unifier.Term> types) Constructors in net.hydromatic.morel.compile with parameters of type Unifier.TermModifierConstructorDescriptionprivatePatTerm(Ast.IdPat id, Unifier.Term term, UnaryOperator<Unifier.Term> accessor) (package private)privateTermVariable(Unifier.Term term, Unifier.Variable variable) Constructor parameters in net.hydromatic.morel.compile with type arguments of type Unifier.TermModifierConstructorDescription(package private)BindTypeEnv(String definedName, Binding.Kind kind, Function<TypeSystem, Unifier.Term> termFactory, TypeResolver.TypeEnv parent) privatePatTerm(Ast.IdPat id, Unifier.Term term, UnaryOperator<Unifier.Term> accessor) (package private)TypeMap(TypeSystem typeSystem, Map<AstNode, Unifier.Term> nodeTypeTerms, Unifier.Substitution substitution) -
Uses of Unifier.Term in net.hydromatic.morel.util
Classes in net.hydromatic.morel.util that implement Unifier.TermModifier and TypeClassDescriptionstatic final classA sequence of terms.static final classA variable that represents a symbol or a sequence; unification's task is to find the substitutions for such variables.Fields in net.hydromatic.morel.util declared as Unifier.TermModifier and TypeFieldDescription(package private) Unifier.TermMartelliUnifier.MutableConstraint.arg(package private) final Unifier.TermUnifier.TermTerm.left(package private) final Unifier.TermUnifier.TermTerm.rightprivate final Unifier.TermUnifier.EquivAction.term1private final Unifier.TermUnifier.EquivAction.term2Fields in net.hydromatic.morel.util with type parameters of type Unifier.TermModifier and TypeFieldDescriptionprivate final BiConsumer<Unifier.Variable, Unifier.Term> Tracers.ConfigurableTracerImpl.cycleHandlerprivate final BiConsumer<Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.deleteHandlerprivate final BiConsumer<Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.deleteHandler(package private) final Map<Unifier.Variable, Unifier.Term> MartelliUnifier.Work.resultfinal Map<Unifier.Variable, Unifier.Term> Unifier.Substitution.resultMapThe result of the unification algorithm proper.private final Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.substituteHandlerprivate final Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.substituteHandlerprivate final Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.substituteHandlerprivate final Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.substituteHandlerprivate final BiConsumer<Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.swapHandlerprivate final BiConsumer<Unifier.Term, Unifier.Term> Tracers.ConfigurableTracerImpl.swapHandler(package private) final PairList<Unifier.Term, Unifier.Constraint.Action> MartelliUnifier.MutableConstraint.termActionsUnifier.Constraint.termActionsfinal List<Unifier.Term> Unifier.Sequence.terms(package private) final Map<Unifier.Term, String> Unifiers.Dumper.termsprivate final BiConsumer<Unifier.Variable, Unifier.Term> Tracers.ConfigurableTracerImpl.variableHandlerMethods in net.hydromatic.morel.util that return Unifier.TermModifier and TypeMethodDescriptionUnifier.Sequence.apply(Map<Unifier.Variable, Unifier.Term> substitutions) Unifier.Term.apply(Map<Unifier.Variable, Unifier.Term> substitutions) Applies a substitution to this term.Unifier.Variable.apply(Map<Unifier.Variable, Unifier.Term> substitutions) Unifier.Sequence.apply1(Unifier.Variable variable, Unifier.Term term) Unifier.Term.apply1(Unifier.Variable variable, Unifier.Term term) Applies a single-variable substitution to this term.Unifier.Variable.apply1(Unifier.Variable variable, Unifier.Term term) Creates an atom, or returns an existing one with the same name.Unifier.atomUnique(String prefix) Creates an atom with a unique name.Unifier.Substitution.resolve(Unifier.Term term) Methods in net.hydromatic.morel.util that return types with arguments of type Unifier.TermModifier and TypeMethodDescription(package private) static Map<Unifier.Variable, Unifier.Term> RobinsonUnifier.compose(Map<Unifier.Variable, Unifier.Term> s1, Map<Unifier.Variable, Unifier.Term> s2) Applies s1 to the elements of s2 and adds them into a single list.Methods in net.hydromatic.morel.util with parameters of type Unifier.TermModifier and TypeMethodDescriptionvoidUnifier.Action.accept(Unifier.Variable variable, Unifier.Term term, Unifier.Substitution substitution, BiConsumer<Unifier.Term, Unifier.Term> termPairs) voidUnifier.Constraint.Action.accept(Unifier.Term actualArg, Unifier.Term term, BiConsumer<Unifier.Term, Unifier.Term> consumer) voidUnifier.EquivAction.accept(Unifier.Term actualArg, Unifier.Term actualTerm, BiConsumer<Unifier.Term, Unifier.Term> consumer) private voidMartelliUnifier.act(Unifier.Variable variable, Unifier.Term term, MartelliUnifier.Work work, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, Set<Unifier.Variable> set) private voidMartelliUnifier.act2(Unifier.Variable variable, Unifier.Term term, MartelliUnifier.Work work, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, Set<Unifier.Variable> set) (package private) voidMartelliUnifier.Work.add(Unifier.Term left, Unifier.Term right) (package private) voidMartelliUnifier.Work.add2(Unifier.Term left, Unifier.Term right) Unifier.apply(String operator, Unifier.Term... args) Creates a sequence, or returns an existing one with the same terms.Unifier.Sequence.apply1(Unifier.Variable variable, Unifier.Term term) Unifier.Term.apply1(Unifier.Variable variable, Unifier.Term term) Applies a single-variable substitution to this term.Unifier.Variable.apply1(Unifier.Variable variable, Unifier.Term term) booleanUnifier.Sequence.couldUnifyWith(Unifier.Term term) default booleanUnifier.Term.couldUnifyWith(Unifier.Term term) Returns whether this term could possibly unify with another term.static Unifier.SubstitutionResultUnifier.SubstitutionResult.create(Unifier.Variable v, Unifier.Term t) Creates a substitution result with one (variable, term) entry.static Unifier.Constraint.ActionUnifier.Constraint.equiv(Unifier.Term term1, Unifier.Term term2) Returns anUnifier.Constraint.Actionthat marks two terms as equivalent.(package private) StringUnifiers.Dumper.lookup(Unifier.Term term) Looks up the variable holding a term, registering it if new.(package private) static MartelliUnifier.KindMartelliUnifier.Kind.of(Unifier.Term left, Unifier.Term right) voidTracers.ConfigurableTracerImpl.onCycle(Unifier.Variable variable, Unifier.Term term) voidTracers.NullTracer.onCycle(Unifier.Variable variable, Unifier.Term term) voidTracers.PrintTracer.onCycle(Unifier.Variable variable, Unifier.Term term) voidUnifier.Tracer.onCycle(Unifier.Variable variable, Unifier.Term term) voidTracers.ConfigurableTracerImpl.onDelete(Unifier.Term left, Unifier.Term right) voidTracers.NullTracer.onDelete(Unifier.Term left, Unifier.Term right) voidTracers.PrintTracer.onDelete(Unifier.Term left, Unifier.Term right) voidUnifier.Tracer.onDelete(Unifier.Term left, Unifier.Term right) voidTracers.ConfigurableTracerImpl.onSubstitute(Unifier.Term left, Unifier.Term right, Unifier.Term left2, Unifier.Term right2) voidTracers.NullTracer.onSubstitute(Unifier.Term left, Unifier.Term right, Unifier.Term left2, Unifier.Term right2) voidTracers.PrintTracer.onSubstitute(Unifier.Term left, Unifier.Term right, Unifier.Term left2, Unifier.Term right2) voidUnifier.Tracer.onSubstitute(Unifier.Term left, Unifier.Term right, Unifier.Term left2, Unifier.Term right2) voidTracers.ConfigurableTracerImpl.onSwap(Unifier.Term left, Unifier.Term right) voidTracers.NullTracer.onSwap(Unifier.Term left, Unifier.Term right) voidTracers.PrintTracer.onSwap(Unifier.Term left, Unifier.Term right) voidUnifier.Tracer.onSwap(Unifier.Term left, Unifier.Term right) voidTracers.ConfigurableTracerImpl.onVariable(Unifier.Variable variable, Unifier.Term term) voidTracers.NullTracer.onVariable(Unifier.Variable variable, Unifier.Term term) voidTracers.PrintTracer.onVariable(Unifier.Variable variable, Unifier.Term term) voidUnifier.Tracer.onVariable(Unifier.Variable variable, Unifier.Term term) private StringUnifiers.Dumper.register(Unifier.Term term) Registers a term and returns a unique variable name for it.Unifier.Substitution.resolve(Unifier.Term term) private voidMartelliUnifier.Work.sub(Unifier.Variable variable, Unifier.Term term, ArrayQueue<Unifier.TermTerm> queue, MartelliUnifier.Kind kind) private @Nullable Unifier.FailureMartelliUnifier.Work.subConstraint(Unifier.Variable variable, Unifier.Term term) private @Nullable Unifier.FailureMartelliUnifier.Work.substituteList(Unifier.Variable variable, Unifier.Term term) Applies a mapping to all term pairs in a list, modifying them in place.Unifier.substitution(Unifier.Term... varTerms) Creates a substitution.@NonNull Unifier.ResultRobinsonUnifier.unify(Unifier.Term lhs, Unifier.Term rhs) Method parameters in net.hydromatic.morel.util with type arguments of type Unifier.TermModifier and TypeMethodDescriptionvoidUnifier.Action.accept(Unifier.Variable variable, Unifier.Term term, Unifier.Substitution substitution, BiConsumer<Unifier.Term, Unifier.Term> termPairs) voidUnifier.Action.accept(Unifier.Variable variable, Unifier.Term term, Unifier.Substitution substitution, BiConsumer<Unifier.Term, Unifier.Term> termPairs) voidUnifier.Constraint.Action.accept(Unifier.Term actualArg, Unifier.Term term, BiConsumer<Unifier.Term, Unifier.Term> consumer) voidUnifier.Constraint.Action.accept(Unifier.Term actualArg, Unifier.Term term, BiConsumer<Unifier.Term, Unifier.Term> consumer) voidUnifier.EquivAction.accept(Unifier.Term actualArg, Unifier.Term actualTerm, BiConsumer<Unifier.Term, Unifier.Term> consumer) voidUnifier.EquivAction.accept(Unifier.Term actualArg, Unifier.Term actualTerm, BiConsumer<Unifier.Term, Unifier.Term> consumer) Unifier.apply(String operator, Iterable<? extends Unifier.Term> args) Creates a sequence, or returns an existing one with the same terms.Unifier.Sequence.apply(Map<Unifier.Variable, Unifier.Term> substitutions) Unifier.Term.apply(Map<Unifier.Variable, Unifier.Term> substitutions) Applies a substitution to this term.Unifier.Variable.apply(Map<Unifier.Variable, Unifier.Term> substitutions) voidUnifier.Sequence.checkCycle(Map<Unifier.Variable, Unifier.Term> map, Map<Unifier.Variable, Unifier.Variable> active) voidUnifier.Term.checkCycle(Map<Unifier.Variable, Unifier.Term> map, Map<Unifier.Variable, Unifier.Variable> active) Throws CycleException if expanding this term leads to a cycle.voidUnifier.Variable.checkCycle(Map<Unifier.Variable, Unifier.Term> map, Map<Unifier.Variable, Unifier.Variable> active) private static voidUnifier.checkCycles(Map<Unifier.Variable, Unifier.Term> map, Map<Unifier.Variable, Unifier.Variable> active) (package private) static Map<Unifier.Variable, Unifier.Term> RobinsonUnifier.compose(Map<Unifier.Variable, Unifier.Term> s1, Map<Unifier.Variable, Unifier.Term> s2) Applies s1 to the elements of s2 and adds them into a single list.Unifier.constraint(Unifier.Variable arg, PairList<Unifier.Term, Unifier.Constraint.Action> termActions) Creates a Constraint.Unifier.constraint(Unifier.Variable arg, Unifier.Variable result, PairList<Unifier.Term, Unifier.Term> argResults) Creates a constraint arising from a call to an overloaded function.Unifier.constraint(Unifier.Variable arg, Unifier.Variable result, PairList<Unifier.Term, Unifier.Term> argResults) Creates a constraint arising from a call to an overloaded function.static Unifier.SubstitutionResultUnifier.SubstitutionResult.create(Map<Unifier.Variable, Unifier.Term> resultMap) Creates a substitution result from a map.private booleanUnifier.Substitution.hasCycles(Map<Unifier.Variable, Unifier.Term> map) (package private) static Unifier.SequenceUnifier.sequenceApply(String operator, Map<Unifier.Variable, Unifier.Term> substitutions, Iterable<Unifier.Term> terms) (package private) static Unifier.SequenceUnifier.sequenceApply(String operator, Map<Unifier.Variable, Unifier.Term> substitutions, Iterable<Unifier.Term> terms) Tracers.ConfigurableTracer.withCycleHandler(BiConsumer<Unifier.Variable, Unifier.Term> handler) Sets handler forUnifier.Tracer.onCycle(Variable, Term).Tracers.ConfigurableTracerImpl.withCycleHandler(BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler) Tracers.ConfigurableTracer.withDeleteHandler(BiConsumer<Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onDelete(Term, Term).Tracers.ConfigurableTracer.withDeleteHandler(BiConsumer<Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onDelete(Term, Term).Tracers.ConfigurableTracerImpl.withDeleteHandler(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler) Tracers.ConfigurableTracerImpl.withDeleteHandler(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler) Tracers.ConfigurableTracer.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onSubstitute(Term, Term, Term, Term).Tracers.ConfigurableTracer.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onSubstitute(Term, Term, Term, Term).Tracers.ConfigurableTracer.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onSubstitute(Term, Term, Term, Term).Tracers.ConfigurableTracer.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onSubstitute(Term, Term, Term, Term).Tracers.ConfigurableTracerImpl.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) Tracers.ConfigurableTracerImpl.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) Tracers.ConfigurableTracerImpl.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) Tracers.ConfigurableTracerImpl.withSubstituteHandler(Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) Tracers.ConfigurableTracer.withSwapHandler(BiConsumer<Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onSwap(Term, Term).Tracers.ConfigurableTracer.withSwapHandler(BiConsumer<Unifier.Term, Unifier.Term> handler) Sets handler forUnifier.Tracer.onSwap(Term, Term).Tracers.ConfigurableTracerImpl.withSwapHandler(BiConsumer<Unifier.Term, Unifier.Term> swapHandler) Tracers.ConfigurableTracerImpl.withSwapHandler(BiConsumer<Unifier.Term, Unifier.Term> swapHandler) Tracers.ConfigurableTracer.withVariableHandler(BiConsumer<Unifier.Variable, Unifier.Term> handler) Sets handler forUnifier.Tracer.onVariable(Variable, Term).Tracers.ConfigurableTracerImpl.withVariableHandler(BiConsumer<Unifier.Variable, Unifier.Term> variableHandler) Constructors in net.hydromatic.morel.util with parameters of type Unifier.TermModifierConstructorDescription(package private)EquivAction(Unifier.Term term1, Unifier.Term term2) TermTerm(Unifier.Term left, Unifier.Term right) Constructor parameters in net.hydromatic.morel.util with type arguments of type Unifier.TermModifierConstructorDescriptionprivateConfigurableTracerImpl(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> conflictHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> sequenceHandler, BiConsumer<Unifier.Term, Unifier.Term> swapHandler, BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler, BiConsumer<Unifier.Variable, Unifier.Term> variableHandler, Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) privateConfigurableTracerImpl(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> conflictHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> sequenceHandler, BiConsumer<Unifier.Term, Unifier.Term> swapHandler, BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler, BiConsumer<Unifier.Variable, Unifier.Term> variableHandler, Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) privateConfigurableTracerImpl(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> conflictHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> sequenceHandler, BiConsumer<Unifier.Term, Unifier.Term> swapHandler, BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler, BiConsumer<Unifier.Variable, Unifier.Term> variableHandler, Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) privateConfigurableTracerImpl(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> conflictHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> sequenceHandler, BiConsumer<Unifier.Term, Unifier.Term> swapHandler, BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler, BiConsumer<Unifier.Variable, Unifier.Term> variableHandler, Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) privateConfigurableTracerImpl(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> conflictHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> sequenceHandler, BiConsumer<Unifier.Term, Unifier.Term> swapHandler, BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler, BiConsumer<Unifier.Variable, Unifier.Term> variableHandler, Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) privateConfigurableTracerImpl(BiConsumer<Unifier.Term, Unifier.Term> deleteHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> conflictHandler, BiConsumer<Unifier.Sequence, Unifier.Sequence> sequenceHandler, BiConsumer<Unifier.Term, Unifier.Term> swapHandler, BiConsumer<Unifier.Variable, Unifier.Term> cycleHandler, BiConsumer<Unifier.Variable, Unifier.Term> variableHandler, Tracers.QuadConsumer<Unifier.Term, Unifier.Term, Unifier.Term, Unifier.Term> substituteHandler) (package private)Constraint(Unifier.Variable arg, PairList<Unifier.Term, Unifier.Constraint.Action> termActions) Creates a Constraint.(package private)MutableConstraint(Unifier.Variable arg, PairList<Unifier.Term, Unifier.Constraint.Action> termActions) Creates a MutableConstraint.(package private)Sequence(String operator, List<Unifier.Term> terms) (package private)Substitution(Map<Unifier.Variable, Unifier.Term> resultMap) privateSubstitutionResult(Map<Unifier.Variable, Unifier.Term> resultMap) (package private)Work(Unifier.Tracer tracer, List<Unifier.TermTerm> termPairs, List<Unifier.Constraint> constraints, Map<Unifier.Variable, Unifier.Term> result)