#lang scheme (require "main.ss") ;; adder : number? -> number? -o number? ;; A curried addition function. The result of partial application ;; should be applied at most once, since subsequent applications would ;; try to add a symbol. (define ((adder x) y) (let ([result (+ x y)]) (set! x 'symbol) result)) (provide/contract [adder (number? . -> . (number? . -o . number?))])