Mercurial > urweb
view tests/cfold.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 | 71bafe66dbe1 |
children |
line wrap: on
line source
con currier = fold (fn nm => fn t => fn acc => t -> acc) {} con greenCurryIngredients :: {Type} = [] con greenCurry = currier greenCurryIngredients val greenCurry : greenCurry = {} con redCurryIngredients = [A = int, B = string] con redCurry = currier redCurryIngredients val redCurry : redCurry = fn x : int => fn y : string => {} con yellowCurryIngredients = [A = string, B = int, C = float] con yellowCurry = currier yellowCurryIngredients val yellowCurry : yellowCurry = fn x => fn y => fn z => {} val main = yellowCurry