anchor.diff:     | Some(e) -> 
        let preprocessed = cpreprocess e
        printfn "preprocessed code:\n%s\n" (prettyprint preprocessed)
  -     let generated = ccodegenTop preprocessed (moduleName + "_" + methodName)
  +     let generated = ccodegenFunction preprocessed (moduleName + "_" + methodName)
        printfn "Pretty Printed code for %s.%s:\n\n%s" moduleName methodName generated
positive.code:   | Patterns.Value(v, tp) -> e
    | Patterns.Lambda (x, body) -> Expr.Lambda(x, cpreprocess body)
    | Patterns.NewArray(tp, elems) -> 
      let variable = new Var("x", tp.MakeArrayType())
      Expr.Let(variable, e, Expr.Var(variable))
    | Patterns.Call (x, op, elist) -> 
      Expr.Call(op, List.map cpreprocess elist)
  
negative.code:     | "op_Subtraction" -> Some("-")
      | _ -> None
  
  (* Pretty prints the given expression *)
  let rec prettyprint (e:Expr): string =
          match e with
          | Patterns.Lambda (x, body) -> sprintf "\%s. %s" (x.Name) (prettyprint body)
  