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.TermVariable.termFields in net.hydromatic.morel.compile with type parameters of type Unifier.TermModifier and TypeFieldDescriptionprivate 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 TypeMethodDescriptionprivate Unifier.TermTypeResolver.fieldRecord(Map<Ast.Id, Unifier.Variable> fieldVars) TypeResolver.BindTypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) TypeResolver.EmptyTypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) TypeResolver.TypeEnv.get(TypeSystem typeSystem, String name, Function<String, RuntimeException> exceptionFactory) private Unifier.TermTypeResolver.record(NavigableMap<String, ? extends Unifier.Term> labelTypes) private Unifier.TermTypeResolver.toTerm(PrimitiveType type) private Unifier.TermTypeResolver.toTerm(Type type, TypeResolver.Subst subst) private Unifier.TermTypeResolver.tuple(List<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(Iterable<? extends Type> types, TypeResolver.Subst subst) Methods in net.hydromatic.morel.compile with parameters of type Unifier.TermModifier and TypeMethodDescriptiondefault TypeResolver.TypeEnvTypeResolver.TypeEnv.bind(String name, Unifier.Term term) private voidTypeResolver.equiv(Unifier.Term term, Unifier.Term term2) private voidTypeResolver.equiv(Unifier.Term term, Unifier.Variable atom) private <E extends AstNode>
ETypeResolver.reg(E node, Unifier.Variable variable, Unifier.Term term) (package private) TypeTypeMap.termToType(Unifier.Term term) Method parameters in net.hydromatic.morel.compile with type arguments of type Unifier.TermModifier and TypeMethodDescriptionTypeResolver.BindTypeEnv.bind(String name, Function<TypeSystem, Unifier.Term> termFactory) TypeResolver.EmptyTypeEnv.bind(String name, Function<TypeSystem, Unifier.Term> termFactory) TypeResolver.TypeEnv.bind(String name, Function<TypeSystem, Unifier.Term> termFactory) private static TypeResolver.TypeEnvTypeResolver.bindAll(TypeResolver.TypeEnv env, Map<Ast.IdPat, Unifier.Term> termMap) private Ast.DeclTypeResolver.deduceDataTypeDeclType(TypeResolver.TypeEnv env, Ast.DatatypeDecl datatypeDecl, Map<Ast.IdPat, Unifier.Term> termMap) private Ast.DeclTypeResolver.deduceDeclType(TypeResolver.TypeEnv env, Ast.Decl node, Map<Ast.IdPat, Unifier.Term> termMap) private Ast.MatchTypeResolver.deduceMatchType(TypeResolver.TypeEnv env, Ast.Match match, Map<Ast.IdPat, Unifier.Term> termMap, Unifier.Variable argVariable, Unifier.Variable resultVariable) private Ast.PatTypeResolver.deducePatType(TypeResolver.TypeEnv env, Ast.Pat pat, Map<Ast.IdPat, Unifier.Term> termMap, NavigableSet<String> labelNames, Unifier.Variable v) Derives a type term for a pattern, collecting the names of pattern variables.private AstNodeTypeResolver.deduceValBindType(TypeResolver.TypeEnv env, Ast.ValBind valBind, Map<Ast.IdPat, Unifier.Term> termMap, Unifier.Variable v, Unifier.Variable vPat) private Ast.DeclTypeResolver.deduceValDeclType(TypeResolver.TypeEnv env, Ast.ValDecl valDecl, Map<Ast.IdPat, Unifier.Term> termMap) private Unifier.TermTypeResolver.record(NavigableMap<String, ? extends Unifier.Term> labelTypes) private Unifier.TermTypeResolver.tuple(List<Unifier.Term> types) Constructors in net.hydromatic.morel.compile with parameters of type Unifier.TermConstructor parameters in net.hydromatic.morel.compile with type arguments of type Unifier.TermModifierConstructorDescription(package private)BindTypeEnv(String definedName, Function<TypeSystem, Unifier.Term> termFactory, TypeResolver.TypeEnv parent) (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) final Unifier.TermUnifier.TermTerm.left(package private) final Unifier.TermUnifier.TermTerm.rightFields in net.hydromatic.morel.util with type parameters of type Unifier.TermModifier and TypeFieldDescriptionfinal Map<Unifier.Variable, Unifier.Term> Unifier.Substitution.resultMapThe result of the unification algorithm proper.final List<Unifier.Term> Unifier.Sequence.termsMethods 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) Unifier.Variable.apply(Map<Unifier.Variable, Unifier.Term> substitutions) Creates an atom, or returns an existing one with the same 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, List<Unifier.TermTerm> termPairs) private voidMartelliUnifier.act(Unifier.Variable variable, Unifier.Term term, List<Unifier.TermTerm> termPairs, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, int depth) Unifier.apply(String operator, Unifier.Term... args) Creates a sequence, or returns an existing one with the same terms.static Unifier.SubstitutionResultUnifier.SubstitutionResult.create(Unifier.Variable v, Unifier.Term t) Creates a substitution result with one (variable, term) entry.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.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.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.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.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) Unifier.Substitution.resolve(Unifier.Term term) Unifier.substitution(Unifier.Term... varTerms) Creates a substitution.RobinsonUnifier.unify(Unifier.Term lhs, Unifier.Term rhs) Method parameters in net.hydromatic.morel.util with type arguments of type Unifier.TermModifier and TypeMethodDescriptionUnifier.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) 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.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) private voidMartelliUnifier.substituteList(List<Unifier.TermTerm> termPairs, Unifier.Tracer tracer, Map<Unifier.Variable, Unifier.Term> map) Applies a mapping to all term pairs in a list, modifying them in place.Constructors in net.hydromatic.morel.util with parameters of type Unifier.TermConstructor parameters in net.hydromatic.morel.util with type arguments of type Unifier.TermModifierConstructorDescription(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)