1. 20 Feb, 2017 3 commits
  2. 19 Feb, 2017 1 commit
  3. 16 Feb, 2017 6 commits
  4. 15 Feb, 2017 3 commits
  5. 14 Feb, 2017 7 commits
  6. 13 Feb, 2017 2 commits
  7. 11 Feb, 2017 4 commits
    • Leon Gondelman's avatar
      Coercions: · 8ebc05d2
      Leon Gondelman authored
      This commit fixes some bugs for coercions.
      1. Applying coercion should work correctly w.r.t. unification
      (see  modules TrickyPolymorphic(Alpha|Beta) in bench/typing/good/coercions.mlw).
      2. Union of two coercion maps now works correctly w.r.t. adding the same coercion twice
      even if it is transitive closure
      (see module SameTransitivityCheck in bench/typing/good/coercions.mlw).
      3. Coercion error printing is now listing all components of conflicting coercion
      (see bench/typing/bad/coercion_cycle3.mlw for example).
      
      In this version, we still just lookup at head tysymbols to decide whether a coercion
      can be applied. This can be improved by taking into account also the types of arguments
      to decide earlier that a coercion cannot be applied.
      For instance, given
      
      type t 'a
      function f (t int) : int
      meta coercion function f
      goal G: forall x: t bool. x = 42
      
      results now in an error message
      This term has type t bool, but is expected to have type t int
      
      We can do better, detecting that a coercion f cannot be applied to [x] at all.
      To be done.
      8ebc05d2
    • Leon Gondelman's avatar
    • Leon Gondelman's avatar
      gitignore file · 07e25011
      Leon Gondelman authored
      07e25011
    • Mário Pereira's avatar
      Code extraction (wip) · 4ef1a473
      Mário Pereira authored
      Forgetting local variables identifiers
      4ef1a473
  8. 10 Feb, 2017 3 commits
  9. 09 Feb, 2017 6 commits
  10. 08 Feb, 2017 5 commits