public override HeronValue Eval(VM vm) { HeronValue[] argvals = args.Eval(vm); if (module == null || module.Length == 0) { return(type.type.Instantiate(vm, argvals, vm.CurrentModuleInstance)); } else { ModuleInstance mi = vm.FindModule(module); if (module == null) { throw new Exception("Could not find module " + module); } return(type.type.Instantiate(vm, argvals, mi)); } }