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