1. fun change (till, 0) = [[]] 2. | change ([], amt) = [] 3. | change (coin::till, amt) = 4. if amt < coin then change(till, amt) 5. else 6. let fun allchange [] = [] 7. | allchange (cs::css) = (coin::cs) :: allchange css 8. in allchange (change (coin::till, amt - coin)) @ change (till, amt) 9. end;