anchor.diff:                              (parsedProgram: ParsedProgram) 
                               (expr: FSharpExpr) =
           let visitCall (objExprOpt, 
  -                       compiledFuncName,
  -                       fullFuncName, 
  +                       fullFuncName,
  +                       funcTypeOpt,
                          _typeArgs1, 
                          typeArgs2, 
                          argsExprs) = 
  
positive.code:                 let name = 
                      match nameOpt with 
                      | Some str -> str 
                      | None -> ParsedProgram.escapeName updatedProgram (fullFuncName + "Output")
                  let dependencies = findDependencies updatedProgram argNames
                  let operation = { name = fullFuncName;
                                    inputs = argNames;
                                    output = name;
                                    parameters = 
                                        match typeArgs2 with
                                        | [] -> None
                                        | _ -> Some (List.map typeToModel typeArgs2)
                                    dependencies = Set.union dependencies predcessors } in
                  updatedProgram 
                  |> ParsedProgram.addMnemonic name (Output operation), (Some operation)
  
  
negative.code:             match argExpr with
              | BasicPatterns.Value value
              | BasicPatterns.Call (None, value, [], [], []) -> 
                  ProgramDiff.empty, value.FullName
              | _ -> 
                  let argName = ParsedProgram.escapeName parsedProgram ((unnamedInput funcName) + (string i))
                  let updatedProgram, _ = visitExpression (Some argName) predcessors parsedProgram argExpr in
                  (updatedProgram - parsedProgram), argName
          | Constant (value, t) ->
  