adamc@84: con c1 = fn x :: Name => [x] ~ [A] => [x, A] adamc@84: con c2 = fn x :: Name => [x] ~ [A] => [A, x] adamc@84: con c3 = fn x :: Name => [A] ~ [x] => [x, A] adamc@84: con c4 = fn x :: Name => [A] ~ [x] => [A, x] adamc@84: adamc@84: con c5 = fn r1 :: {Type} => fn r2 => r1 ~ r2 => r1 ++ r2 adamc@84: con c6 = fn r1 :: {Type} => fn r2 => r2 ~ r1 => r1 ++ r2 adamc@84: adamc@84: con c7 = fn x :: Name => fn r => [x] ~ r => [x] ++ r adamc@85: adamc@85: val v1 = fn x :: Name => fn [x] ~ [A] => fn y : {x : int, A : string} => y.x