Machine Problem 7, designed by Bryan Chadwick In directory x is a class dictionary for a simple PL with numbers and booleans with single argument lambdas. The Evaluator handles LetRec and Mutiple Arg Lambdas without any changes to the code (just an adjustment of the field name "formal" -> "formals" in the Edge control) so you will not need to change EvalFunc.java or LetrecEvalFunc.java. You should proceed as follows: 1) Read through and understand the Code (at least the important parts). You will be changing the files in the 'extra' directory, but you shouldn't need to make any changes to more than 3 lines of already written code. I setup the files so that the files Letrec*.java contain all the code dealing with the new constructs. 2) Get the Jar working... For this mp there is a new version of the Jar. Bryan added an initialization check that Edges to be bypassed actually exist; this will help you to debug in the single to multiple args conversion. The method lookup is also much better with some decent output available for debugging. Util.setDebug(true) and/or Bc.setDebug(true) should help if they get stuck Karl: what is Bc? 3) Add code for LetrecAddrTrans.java which helps transform Syms into Addr for the Evaluator - To help you in this step Bryan added a command line 'switch' to Main to disable the type checking or evaluation. Running DemeterJ as: demeterj test NoTypeCheck or demeterj test NoRun will skip type-checking or evaluation respectively, so you can test parts of your implementation separately. 4) Add Code for LetrecTypeChecker.java to type-check LetRecs. Here you need to update the type environment, (TEnv update(LetRec l, TEnv te){ ... }) and do checking of LetRec (Type combine(LetRec l, Type a, Type e, Type body){ ... }) 5) Update program.beh, TypeChecker.java, and AddrTrans.java to support multiple arg Lambdas. It seems like some work, but it's really only 20 lines of code, and almost no code modification. I included some simple but interesting tests for stages of letrec, and multiple arguments [of course factorial is there :)]. The new jar is placed at: /home/chadwick/www/demeterf/mp7package.jar