- What took me time: Either cut/pasting and forgetting to change the name fo the struct; or, going back and adding lines to a function and forgeting to put in the recursive calls for *sub*structures (resulting in the wrong type getting passed arond) - Bug: when evaling an appl, thought I didn't need to eval the appl-fun, since it would already be substituted. However, for applying curried functions, it is necessary. - an intentional (if confusing?) name mis-match: the struct 'sum' for the syntax 'plus'. - I highly advise writing out some test cases by hand, for function-application. Scheme version: - the expr->string is rally bogus; leave it out? - the diff between { and (. - parsing practically solved for us, with 'read' Java version: - no good way to test return value of 'fun' ? - parsing more hands-on. (Consider writing a scanner method equivalent to scheme's 'read'?)