view tests/cancel.ur @ 2049:459ccbf8cd08

When unifying constructor-level unification variables, also unify their kinds
author Adam Chlipala <adam@chlipala.net>
date Fri, 01 Aug 2014 16:11:36 -0400
parents dfb38a333816
children
line wrap: on
line source
type t = {A : int, B : float, C : string}
type u = {A : int, C : string, D : bool}

fun f (x : t) = x
fun g (x : u) = f x

fun h [ts] [ts ~ [A]] (r : $([A = int] ++ ts)) : $([A = int, B = float] ++ ts) = r