Esempio n. 1
0
 public void Unify(free <type> t, int i)
 {
     if (Failed)
     {
         return;
     }
     _vars.Unify(Rule(t), User(i, Type(i)));
     if (_vars.Failed)
     {
         Error = GenerateError($"could not match {i} with inference rule type {t}", new[] { Source(i) });
     }
 }
Esempio n. 2
0
 private type User(int i, free <type> free) => _userScopes[i].Unfree(free);
Esempio n. 3
0
 private type Rule(free <type> free) => _ruleScope.Unfree(free);
Esempio n. 4
0
 public static free <term> Canonicalize(this free <term> term)
 {
     return(free.Of(new Canonicalizer().Canonicalize(term.UnsafeValue)));
 }
Esempio n. 5
0
 public static free <type> Canonicalize(this free <type> type)
 {
     return(free.Of(new Canonicalizer().Canonicalize(type.UnsafeValue)));
 }
Esempio n. 6
0
        public term Unfree(free <term> fterm)
        {
            var val = fterm.UnsafeValue;

            return(Unfree(val));
        }