adamc@67: con currier = fold (fn nm => fn t => fn acc => t -> acc) {} adamc@67: adamc@71: con greenCurryIngredients :: {Type} = [] adamc@71: con greenCurry = currier greenCurryIngredients adamc@67: val greenCurry : greenCurry = {} adamc@67: adamc@71: con redCurryIngredients = [A = int, B = string] adamc@71: con redCurry = currier redCurryIngredients adamc@67: val redCurry : redCurry = fn x : int => fn y : string => {} adamc@67: adamc@71: con yellowCurryIngredients = [A = string, B = int, C = float] adamc@71: con yellowCurry = currier yellowCurryIngredients adamc@67: val yellowCurry : yellowCurry = fn x => fn y => fn z => {} adamc@70: adamc@70: val main = yellowCurry