annotate tests/cfold.ur @ 2184:1ecef02f67c5

More Elaborate work to avoid instantiating unification variables with out-of-scope regular variables
author Adam Chlipala <adam@chlipala.net>
date Sat, 24 Oct 2015 17:23:07 -0400
parents 71bafe66dbe1
children
rev   line source
adamc@67 1 con currier = fold (fn nm => fn t => fn acc => t -> acc) {}
adamc@67 2
adamc@71 3 con greenCurryIngredients :: {Type} = []
adamc@71 4 con greenCurry = currier greenCurryIngredients
adamc@67 5 val greenCurry : greenCurry = {}
adamc@67 6
adamc@71 7 con redCurryIngredients = [A = int, B = string]
adamc@71 8 con redCurry = currier redCurryIngredients
adamc@67 9 val redCurry : redCurry = fn x : int => fn y : string => {}
adamc@67 10
adamc@71 11 con yellowCurryIngredients = [A = string, B = int, C = float]
adamc@71 12 con yellowCurry = currier yellowCurryIngredients
adamc@67 13 val yellowCurry : yellowCurry = fn x => fn y => fn z => {}
adamc@70 14
adamc@70 15 val main = yellowCurry