view tests/cancel.ur @ 1675:13dad713da35

New, more principled heuristic for Especialize: only specialize uniform function arguments; that is, arguments that don't change across recursive calls
author Adam Chlipala <adam@chlipala.net>
date Wed, 11 Jan 2012 13:53:35 -0500
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