#include "run-time.h"

/* Typedefs for referenced classes */

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLclassGVKd;

#define  define__KLmm_wrapperGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D mm_wrapper_implementation_class_; \
    D mm_wrapper_subtype_mask_; \
    DWORD mm_wrapper_fixed_part_; \
    DWORD mm_wrapper_variable_part_; \
    D mm_wrapper_number_patterns_; \
    DWORD mm_wrapper_pattern_element_[nrepeated+1]; \
  } _KLmm_wrapperGVKi_##nrepeated;
define__KLmm_wrapperGVKi(1);
define__KLmm_wrapperGVKi(0);

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    D vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(4);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(14);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(24);
define__KLsimple_object_vectorGVKd(0);
define__KLsimple_object_vectorGVKd(16);
define__KLsimple_object_vectorGVKd(1);

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLempty_listGVKd;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D computation_closure_method_;
  D computation_init_closure_;
  D computation_signature_value_;
} _KLmake_closureGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLlistGVKd;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D union_type1_;
  D union_type2_;
} _KLunionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D singleton_object_;
} _KLsingletonGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
} _KLsimple_methodGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLfunction_classGVKi;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_values_;
} _KLsignatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D users_;
  D private_Cfunction_signature_;
  D Pmep_;
  D private_debug_name_;
  D function_properties_;
  D private_signature_spec_;
  D parameters_dynamic_extent_;
  D private_lambda_heap_;
  D private_lambda_body_;
} _KLBlambdaGVdfmc_modeling;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
} _KLsealed_generic_functionGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
  D incremental_gf_module_;
  D incremental_gf_domain_info_;
  D incremental_gf_method_libraries_;
  D incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLobject_signatureGVKe;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
} _KLabsent_engine_nodeGVKg;

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(8);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(32);
define__KLbyte_stringGVKd(13);
define__KLbyte_stringGVKd(27);
define__KLbyte_stringGVKd(29);
define__KLbyte_stringGVKd(24);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(9);

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLpairGVKd;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

typedef struct {
  D wrapper;
  D users_;
} _KLvalue_referenceGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D xep_;
} _KLfunctionGVKd;

typedef struct {
  D wrapper;
  D outer_;
  D lambda_;
  D temporaries_;
  D rare_environment_data_;
} _KLlambda_lexical_environmentGVdfmc_flow_graph;

typedef struct {
  D wrapper;
} _KLintegerGVKd;

typedef struct {
  D wrapper;
  D users_;
  D generator_;
  D environment_;
  D temporary_properties_;
  D emitted_name_;
  D name_;
  D me_block_;
  D exits_;
} _KLentry_stateGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D outer_;
} _KLlexical_environmentGVdfmc_flow_graph;

#define  define__KLsimple_closure_methodGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D xep_; \
    D function_signature_; \
    D mep_; \
    D environment_size_; \
    D environment_element_[nrepeated+1]; \
  } _KLsimple_closure_methodGVKi_##nrepeated;
define__KLsimple_closure_methodGVKi(0);

typedef struct {
  D wrapper;
  D symbol_name_;
} _KLsymbolGVKd;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D Csignature_properties_;
  D Csignature_required_;
} _KLBsignatureGVdfmc_modeling;

typedef struct {
  D wrapper;
  D private_spec_variable_name_;
} _KLrequired_variable_specGVdfmc_definitions;

typedef struct {
  D wrapper;
} _KLsignature_specGVdfmc_definitions;

typedef struct {
  D wrapper;
  D users_;
  D generator_;
  D environment_;
  D temporary_properties_;
  D emitted_name_;
  D name_;
  D specializer_;
} _KLlexical_required_variableGVdfmc_flow_graph;

typedef struct {
  D wrapper;
} _KLstretchy_vectorGVKd;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
  D cache_header_engine_node_next_;
  D cache_header_engine_node_parent_;
} _KLsimple_typechecked_cache_header_engine_nodeGVKg;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
  D function_;
} _KLsimple_callGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
} _KLcomputationGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D users_;
  D generator_;
  D environment_;
  D temporary_properties_;
} _KLtemporaryGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D computation_closure_method_;
  D computation_closure_;
} _KLinitialize_closureGVdfmc_flow_graph;


/* Typedefs for defined classes */


/* Referenced object declarations */

extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLclassGVKd KLmake_closureGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLmake_closureGVdfmc_flow_graphW;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
D Kunion_instanceQVKiI (D, D);
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
D Ksingleton_pointer_idQ_instanceQVKiI (D, D);
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLclassGVKd KLBlambdaGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBlambdaGVdfmc_modelingW;
extern _KLsealed_generic_functionGVKe KiepVdfmc_modeling;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsimple_methodGVKe KreferencesVdfmc_commonMM0;
extern _KLincremental_generic_functionGVKe Kforward_iteration_protocolVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLsealed_generic_functionGVKe KenvironmentVdfmc_modeling;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLsealed_generic_functionGVKe KusersVdfmc_common;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLvalue_referenceGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLvalue_referenceGVdfmc_flow_graphW;
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
extern _KLclassGVKd KLlambda_lexical_environmentGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLlambda_lexical_environmentGVdfmc_flow_graphW;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLsimple_methodGVKe KentriesVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe KclosureVdfmc_flow_graphMM0;
D KentriesVdfmc_flow_graphMM0I (D);
D KsizeVKdMM30I (D);
D Klocal_entry_stateQ_setterVdfmc_flow_graphMM0I (D, D);
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLclassGVKd KLentry_stateGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLentry_stateGVdfmc_flow_graphW;
D Klambda_usedQVdfmc_flow_graphMM0I (D);
D KclosureVdfmc_flow_graphMM0I (D);
D KmemberQVKdMM3I (D, D, D, D);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLsimple_methodGVKe KEEVKd;
D Kclosed_overQVdfmc_flow_graphMM0I (D);
D Kclosed_overQ_setterVdfmc_flow_graphMM0I (D, D);
D KliftureVdfmc_flow_graphMM0I (D);
D Kadd_newXVKdMM3I (D, D, D, D);
D Kclosure_setterVdfmc_flow_graphMM0I (D, D);
D KelementVKdMM25I (D, D, D, D);
extern _KLsealed_generic_functionGVKe Kunsupplied_objectVKi;
extern _KLsimple_methodGVKe KliftureVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe Kclosed_overQVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe Kclosed_overQ_setterVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe Kreplace_temporary_referencesXVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe Kdo_all_lambdasVdfmc_flow_graphMM0;
extern _KLsealed_generic_functionGVKe KouterVdfmc_flow_graph;
extern _KLclassGVKd KLlexical_environmentGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLlexical_environmentGVdfmc_flow_graphW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLsealed_generic_functionGVKe KnameVdfmc_common;
D Kdylan_variable_nameVdfmc_readerI (D);
D Klifture_setterVdfmc_flow_graphMM0I (D, D);
D Kdylan_valueVdfmc_namespaceI (D);
extern _KLsealed_generic_functionGVKe KCfunction_signatureVdfmc_modeling;
extern _KLsimple_methodGVKe KCsignature_number_requiredVdfmc_modelingMM0;
extern _KLsealed_generic_functionGVKe KCsignature_requiredVdfmc_modeling;
extern _KLincremental_generic_functionGVKe Kcopy_sequenceVKd;
extern _KLsymbolGVKd KJend_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
D Kobject_classVKdI (D);
extern _KLsealed_generic_functionGVKe Kconcatenate_asVKd;
extern _KLsimple_methodGVKe KCsignature_keyQVdfmc_modelingMM0;
extern _KLsealed_generic_functionGVKe KCsignature_keysVdfmc_modeling;
extern _KLsealed_generic_functionGVKe KCsignature_key_typesVdfmc_modeling;
extern _KLsealed_generic_functionGVKe KCsignature_valuesVdfmc_modeling;
extern _KLsealed_generic_functionGVKe KCsignature_rest_valueVdfmc_modeling;
extern _KLsimple_methodGVKe KCsignature_number_valuesVdfmc_modelingMM0;
extern _KLsimple_methodGVKe KCsignature_restQVdfmc_modelingMM0;
extern _KLsimple_methodGVKe KCsignature_sealed_domainQVdfmc_modelingMM0;
extern _KLsymbolGVKd KJnumber_required_;
extern _KLsymbolGVKd KJrequired_;
extern _KLsymbolGVKd KJkeyQ_;
extern _KLsymbolGVKd KJkeys_;
extern _KLsymbolGVKd KJkey_types_;
extern _KLsymbolGVKd KJvalues_;
extern _KLsymbolGVKd KJrest_valueQ_;
extern _KLsymbolGVKd KJrest_value_;
extern _KLsymbolGVKd KJnumber_values_;
extern _KLsymbolGVKd KJrestQ_;
extern _KLsymbolGVKd KJnextQ_;
D KmakeVKdMdfmc_modelingM0I (D, D, D, D, D, D, D, D, D, D, D, D);
extern _KLclassGVKd KLBsignatureGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBsignatureGVdfmc_modelingW;
extern _KLsealed_generic_functionGVKe KCfunction_signature_setterVdfmc_modeling;
extern _KLsealed_generic_functionGVKe Ksignature_specVdfmc_modeling;
D KmakeVKdMdfmc_definitionsM18I (D, D, D, D);
extern _KLclassGVKd KLrequired_variable_specGVdfmc_definitions;
extern _KLmm_wrapperGVKi_0 KLrequired_variable_specGVdfmc_definitionsW;
extern _KLsealed_generic_functionGVKe Kspec_argument_required_variable_specsVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_argument_next_variable_specVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_argument_rest_variable_specVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_argument_keyQVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_argument_key_variable_specsVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_value_required_variable_specsVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_value_rest_variable_specVdfmc_definitions;
D KmakeVKdMdfmc_definitionsM20I (D, D, D, D, D, D);
extern _KLclassGVKd KLsignature_specGVdfmc_definitions;
extern _KLmm_wrapperGVKi_0 KLsignature_specGVdfmc_definitionsW;
extern _KLsealed_generic_functionGVKe Ksignature_spec_setterVdfmc_modeling;
extern _KLsymbolGVKd KJname_;
D KLlexical_required_variableGZ32ZconstructorVdfmc_flow_graphMM0I (D, D, D, D, D, D, D, D);
extern _KLclassGVKd KLlexical_required_variableGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLlexical_required_variableGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe KparametersVdfmc_modeling;
extern _KLsealed_generic_functionGVKe Kparameters_setterVdfmc_modeling;
D Kconcatenate_asVKdMM1I (D, D, D);
extern _KLclassGVKd KLstretchy_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLstretchy_vectorGVKdW;
extern _KLsealed_generic_functionGVKe Ktemporaries_setterVdfmc_flow_graph;
extern _KLsimple_methodGVKe Kconcatenate_asVKdMM0;
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
extern _KLkeyword_methodGVKe KmakeVKdMM48;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
D KremoveXVKdMM7I (D, D, D, D, D);
extern _KLsimple_methodGVKe Kclosure_setterVdfmc_flow_graphMM0;
extern _KLsealed_generic_functionGVKe Kadd_userXVdfmc_common;
extern _KLsealed_generic_functionGVKe Karguments_setterVdfmc_flow_graph;
extern _KLclassGVKd KLsimple_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLsimple_callGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe KcellQVdfmc_flow_graph;
extern _KLsealed_generic_functionGVKe KtemporaryVdfmc_flow_graph;
extern _KLclassGVKd KLcomputationGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLcomputationGVdfmc_flow_graphW;
D KEEVKdI (D, D);
extern _KLsealed_generic_functionGVKe KheadVKd;
extern _KLsealed_generic_functionGVKe KtailVKd;
extern _KLclassGVKd KLtemporaryGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLtemporaryGVdfmc_flow_graphW;
extern _KLclassGVKd KLinitialize_closureGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLinitialize_closureGVdfmc_flow_graphW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLsealed_generic_functionGVKe KfunctionVdfmc_modeling;
extern _KLsealed_generic_functionGVKe KgeneratorVdfmc_flow_graph;
D KmemberQVKdMM2I (D, D, D, D);

/* Defined object declarations */

extern _KLsimple_methodGVKe Klambda_make_closureVdfmc_flow_graph;
D Klambda_make_closureVdfmc_flow_graphI (D);
static _KLunionGVKe K2;
static _KLsingletonGVKd K3;
static _KLsignatureAvaluesGVKi K4;
static _KLsimple_object_vectorGVKd_1 K5;
static _KLsimple_object_vectorGVKd_1 K6;
extern _KLsimple_methodGVKe Kdo_over_lambda_usersVdfmc_flow_graph;
D Kdo_over_lambda_usersVdfmc_flow_graphI (D, D);
static D Kdo_overF10I (D, D);
extern _KLsealed_generic_functionGVKe Kref_usersVdfmc_flow_graph;
extern _KLsimple_methodGVKe Kref_usersVdfmc_flow_graphMM0;
D Kref_usersVdfmc_flow_graphMM0I (D);
extern _KLsimple_methodGVKe Kref_usersVdfmc_flow_graphMM1;
D Kref_usersVdfmc_flow_graphMM1I (D);
static _KLpairGVKd K16;
static _KLpairGVKd K17;
static _KLbyte_stringGVKd_9 K18;
static _KLsignatureGVKe K19;
static _KLsimple_object_vectorGVKd_1 K20;
static _KLsignatureGVKe K21;
static _KLsimple_object_vectorGVKd_1 K22;
static _KLsignatureGVKe K23;
static _KLsimple_object_vectorGVKd_2 K24;
extern _KLunionGVKe KLclosure_entry_strengthGVdfmc_flow_graph;
extern _KLsimple_methodGVKe Kanalyze_environmentsVdfmc_flow_graphMM0;
D Kanalyze_environmentsVdfmc_flow_graphMM0I (D);
extern _KLsimple_methodGVKe Kcompute_closureVdfmc_flow_graphMM0;
D Kcompute_closureVdfmc_flow_graphMM0I (D);
extern _KLsimple_methodGVKe Kanalyze_blockVdfmc_flow_graphMM0;
D Kanalyze_blockVdfmc_flow_graphMM0I (D, D);
D Klocal_exitQVdfmc_flow_graphMM0I (D, D);
static _KLsignatureAvaluesGVKi K33;
static _KLsimple_object_vectorGVKd_2 K34;
extern _KLsealed_generic_functionGVKe Kclosure_callQVdfmc_flow_graph;
extern _KLsimple_methodGVKe Kclosure_setupQVdfmc_flow_graphMM0;
D Kclosure_setupQVdfmc_flow_graphMM0I (D);
extern _KLsimple_methodGVKe Kclose_overVdfmc_flow_graph;
D Kclose_overVdfmc_flow_graphI (D, D, D, D);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_close_overF113;
static D Kanonymous_of_close_overF113I (D);
extern _KLsimple_methodGVKe Kmerge_closure_entry_strengthsVdfmc_flow_graph;
D Kmerge_closure_entry_strengthsVdfmc_flow_graphI (D, D);
D Klookup_aliasVdfmc_flow_graphI (D, D);
D Kreference_liftableQVdfmc_flow_graphI (D, D);
D Klift_referenceVdfmc_flow_graphI (D, D);
D Kclose_over_lambda_usersVdfmc_flow_graphI (D, D, D, D);
extern _KLsimple_methodGVKe Knested_environmentQVdfmc_flow_graph;
D Knested_environmentQVdfmc_flow_graphI (D, D);
static _KLsignatureAvaluesGVKi K50;
static _KLsimple_object_vectorGVKd_2 K51;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_close_over_lambda_usersF54;
static D Kanonymous_of_close_over_lambda_usersF54I (D);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_lift_referenceF95;
static D Kanonymous_of_lift_referenceF95I (D);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_lift_referenceF94;
static D Kanonymous_of_lift_referenceF94I (D);
static _KLsymbolGVKd KJimplicit_argument_;
D Kadd_function_argumentVdfmc_flow_graphMM0I (D, D);
D Kadd_aliasVdfmc_flow_graphI (D, D, D);
D Kdo_over_lambda_using_computationsVdfmc_flow_graphI (D, D);
static D Kdo_overF64I (D, D);
static _KLsymbolGVKd KJLobjectG_;
static _KLsymbolGVKd KJsealed_domainQ_;
static _KLpairGVKd K67;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K68;
static _KLsymbolGVKd KJvariable_name_;
static _KLsymbolGVKd KJargument_required_variable_specs_;
static _KLsymbolGVKd KJargument_next_variable_spec_;
static _KLsymbolGVKd KJargument_rest_variable_spec_;
static _KLsymbolGVKd KJargument_keyQ_;
static _KLsymbolGVKd KJargument_key_variable_specs_;
static _KLsymbolGVKd KJvalue_required_variable_specs_;
static _KLsymbolGVKd KJvalue_rest_variable_spec_;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K77;
static _KLsymbolGVKd KJenvironment_;
static _KLsymbolGVKd KJspecializer_;
static _KLpairGVKd K80;
static _KLbyte_stringGVKd_11 K81;
static _KLbyte_stringGVKd_11 K82;
static _KLbyte_stringGVKd_24 K83;
static _KLbyte_stringGVKd_29 K84;
static _KLbyte_stringGVKd_27 K85;
static _KLbyte_stringGVKd_13 K86;
static _KLbyte_stringGVKd_27 K87;
static _KLbyte_stringGVKd_27 K88;
static _KLbyte_stringGVKd_32 K89;
static _KLbyte_stringGVKd_13 K90;
static _KLbyte_stringGVKd_14 K91;
static _KLbyte_stringGVKd_8 K92;
static _KLbyte_stringGVKd_17 K93;
extern _KLsimple_methodGVKe Kadd_call_argumentVdfmc_flow_graphMM0;
D Kadd_call_argumentVdfmc_flow_graphMM0I (D, D);
static _KLsignatureGVKe K98;
static _KLsimple_object_vectorGVKd_2 K99;
static _KLsignatureGVKe K100;
static _KLsimple_object_vectorGVKd_1 K101;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_reference_liftableQF104;
static D Kanonymous_of_reference_liftableQF104I (D);
static _KLsignatureGVKe K105;
static _KLsimple_object_vectorGVKd_1 K106;
extern _KLsimple_methodGVKe Klookup_aliasVdfmc_flow_graph;
static _KLsignatureGVKe K108;
static _KLsimple_object_vectorGVKd_2 K109;
static _KLsignatureAvaluesGVKi K110;
static _KLsimple_object_vectorGVKd_2 K111;
static _KLsimple_object_vectorGVKd_1 K112;
static _KLsignatureGVKe K114;
static _KLsimple_object_vectorGVKd_4 K115;
static _KLsignatureAvaluesGVKi K116;
extern _KLsimple_methodGVKe Kclosure_callQVdfmc_flow_graphMM0;
D Kclosure_callQVdfmc_flow_graphMM0I (D, D);
extern _KLsimple_methodGVKe Kclosure_callQVdfmc_flow_graphMM1;
D Kclosure_callQVdfmc_flow_graphMM1I (D, D);
static _KLpairGVKd K121;
static _KLpairGVKd K122;
static _KLbyte_stringGVKd_13 K123;
static _KLsignatureGVKe K124;
static _KLsimple_object_vectorGVKd_2 K125;
static _KLsignatureGVKe K126;
static _KLsimple_object_vectorGVKd_1 K127;
static _KLsignatureAvaluesGVKi K128;

/* Indirection variables */

static D IKJimplicit_argument_ = &KJimplicit_argument_;
static D IKJLobjectG_ = &KJLobjectG_;
static D IKJsealed_domainQ_ = &KJsealed_domainQ_;
static D IKJvariable_name_ = &KJvariable_name_;
static D IKJargument_required_variable_specs_ = &KJargument_required_variable_specs_;
static D IKJargument_next_variable_spec_ = &KJargument_next_variable_spec_;
static D IKJargument_rest_variable_spec_ = &KJargument_rest_variable_spec_;
static D IKJargument_keyQ_ = &KJargument_keyQ_;
static D IKJargument_key_variable_specs_ = &KJargument_key_variable_specs_;
static D IKJvalue_required_variable_specs_ = &KJvalue_required_variable_specs_;
static D IKJvalue_rest_variable_spec_ = &KJvalue_rest_variable_spec_;
static D IKJenvironment_ = &KJenvironment_;
static D IKJspecializer_ = &KJspecializer_;

/* Variables */

D analyze_environmentsVdfmc_flow_graph = &Kanalyze_environmentsVdfmc_flow_graphMM0;
D Lclosure_entry_strengthGVdfmc_flow_graph = &KLclosure_entry_strengthGVdfmc_flow_graph;
D Dno_closure_entryVdfmc_flow_graph = &KPfalseVKi;
D Dweak_closure_entryVdfmc_flow_graph = (D) 5;
D Dstrong_closure_entryVdfmc_flow_graph = (D) 9;
D do_over_lambda_usersVdfmc_flow_graph = &Kdo_over_lambda_usersVdfmc_flow_graph;
D lambda_make_closureVdfmc_flow_graph = &Klambda_make_closureVdfmc_flow_graph;

/* Objects */

_KLsimple_methodGVKe Klambda_make_closureVdfmc_flow_graph = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K4,
  &Klambda_make_closureVdfmc_flow_graphI
};

static _KLunionGVKe K2 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K3,
  &KLmake_closureGVdfmc_flow_graph
};

static _KLsingletonGVKd K3 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KPfalseVKi
};

static _KLsignatureAvaluesGVKi K4 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K5,
  &K6
};

static _KLsimple_object_vectorGVKd_1 K5 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLBlambdaGVdfmc_modeling
};

static _KLsimple_object_vectorGVKd_1 K6 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &K2
};

_KLsimple_methodGVKe Kdo_over_lambda_usersVdfmc_flow_graph = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K23,
  &Kdo_over_lambda_usersVdfmc_flow_graphI
};

_KLsealed_generic_functionGVKe Kref_usersVdfmc_flow_graph = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (D) 1,
  &K18,
  &K16,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kref_usersVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K21,
  &Kref_usersVdfmc_flow_graphMM0I
};

_KLsimple_methodGVKe Kref_usersVdfmc_flow_graphMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K19,
  &Kref_usersVdfmc_flow_graphMM1I
};

static _KLpairGVKd K16 = {
  &KLpairGVKdW /* wrapper */,
  &Kref_usersVdfmc_flow_graphMM0,
  &K17
};

static _KLpairGVKd K17 = {
  &KLpairGVKdW /* wrapper */,
  &Kref_usersVdfmc_flow_graphMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_9 K18 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "ref-users"
};

static _KLsignatureGVKe K19 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944069,
  &K20
};

static _KLsimple_object_vectorGVKd_1 K20 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLmake_closureGVdfmc_flow_graph
};

static _KLsignatureGVKe K21 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944069,
  &K22
};

static _KLsimple_object_vectorGVKd_1 K22 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLvalue_referenceGVdfmc_flow_graph
};

static _KLsignatureGVKe K23 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K24
};

static _KLsimple_object_vectorGVKd_2 K24 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLfunctionGVKd,
  &KLlambda_lexical_environmentGVdfmc_flow_graph
};

_KLunionGVKe KLclosure_entry_strengthGVdfmc_flow_graph = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K3,
  &KLintegerGVKd
};

_KLsimple_methodGVKe Kanalyze_environmentsVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K128,
  &Kanalyze_environmentsVdfmc_flow_graphMM0I
};

_KLsimple_methodGVKe Kcompute_closureVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K126,
  &Kcompute_closureVdfmc_flow_graphMM0I
};

_KLsimple_methodGVKe Kanalyze_blockVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K33,
  &Kanalyze_blockVdfmc_flow_graphMM0I
};

static _KLsignatureAvaluesGVKi K33 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K34,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K34 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLlambda_lexical_environmentGVdfmc_flow_graph,
  &KLentry_stateGVdfmc_flow_graph
};

_KLsealed_generic_functionGVKe Kclosure_callQVdfmc_flow_graph = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (D) 1,
  &K123,
  &K121,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kclosure_setupQVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K116,
  &Kclosure_setupQVdfmc_flow_graphMM0I
};

_KLsimple_methodGVKe Kclose_overVdfmc_flow_graph = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_4,
  &K114,
  &Kclose_overVdfmc_flow_graphI
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_close_overF113 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_close_overF113I,
  (D) 1
};

_KLsimple_methodGVKe Kmerge_closure_entry_strengthsVdfmc_flow_graph = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K110,
  &Kmerge_closure_entry_strengthsVdfmc_flow_graphI
};

_KLsimple_methodGVKe Knested_environmentQVdfmc_flow_graph = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K50,
  &Knested_environmentQVdfmc_flow_graphI
};

static _KLsignatureAvaluesGVKi K50 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K51,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K51 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLlexical_environmentGVdfmc_flow_graph,
  &KLlexical_environmentGVdfmc_flow_graph
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_close_over_lambda_usersF54 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_close_over_lambda_usersF54I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_lift_referenceF95 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &K100,
  &Kanonymous_of_lift_referenceF95I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_lift_referenceF94 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_lift_referenceF94I,
  (D) 1
};

static _KLsymbolGVKd KJimplicit_argument_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K93
};

static _KLsymbolGVKd KJLobjectG_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K92
};

static _KLsymbolGVKd KJsealed_domainQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K91
};

static _KLpairGVKd K67 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVKdMM48,
  &KPempty_listVKi
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K68 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 65593,
  &KPfalseVKi,
  &cache_header_engine_2,
  &RSINGULAR_Labsent_engine_nodeG,
  &KCfunction_signature_setterVdfmc_modeling
};

static _KLsymbolGVKd KJvariable_name_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K90
};

static _KLsymbolGVKd KJargument_required_variable_specs_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K89
};

static _KLsymbolGVKd KJargument_next_variable_spec_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K88
};

static _KLsymbolGVKd KJargument_rest_variable_spec_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K87
};

static _KLsymbolGVKd KJargument_keyQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K86
};

static _KLsymbolGVKd KJargument_key_variable_specs_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K85
};

static _KLsymbolGVKd KJvalue_required_variable_specs_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K84
};

static _KLsymbolGVKd KJvalue_rest_variable_spec_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K83
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K77 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 65593,
  &KPfalseVKi,
  &cache_header_engine_2,
  &RSINGULAR_Labsent_engine_nodeG,
  &Ksignature_spec_setterVdfmc_modeling
};

static _KLsymbolGVKd KJenvironment_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K82
};

static _KLsymbolGVKd KJspecializer_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K81
};

static _KLpairGVKd K80 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcatenate_asVKdMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_11 K81 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "specializer"
};

static _KLbyte_stringGVKd_11 K82 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "environment"
};

static _KLbyte_stringGVKd_24 K83 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "value-rest-variable-spec"
};

static _KLbyte_stringGVKd_29 K84 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 117,
  "value-required-variable-specs"
};

static _KLbyte_stringGVKd_27 K85 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "argument-key-variable-specs"
};

static _KLbyte_stringGVKd_13 K86 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 53,
  "argument-key?"
};

static _KLbyte_stringGVKd_27 K87 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "argument-rest-variable-spec"
};

static _KLbyte_stringGVKd_27 K88 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "argument-next-variable-spec"
};

static _KLbyte_stringGVKd_32 K89 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 129,
  "argument-required-variable-specs"
};

static _KLbyte_stringGVKd_13 K90 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 53,
  "variable-name"
};

static _KLbyte_stringGVKd_14 K91 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "sealed-domain?"
};

static _KLbyte_stringGVKd_8 K92 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 33,
  "<object>"
};

static _KLbyte_stringGVKd_17 K93 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 69,
  "implicit-argument"
};

_KLsimple_methodGVKe Kadd_call_argumentVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K98,
  &Kadd_call_argumentVdfmc_flow_graphMM0I
};

static _KLsignatureGVKe K98 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K99
};

static _KLsimple_object_vectorGVKd_2 K99 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLsimple_callGVdfmc_flow_graph,
  &KLvalue_referenceGVdfmc_flow_graph
};

static _KLsignatureGVKe K100 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040197,
  &K101
};

static _KLsimple_object_vectorGVKd_1 K101 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLsimple_callGVdfmc_flow_graph
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_reference_liftableQF104 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &K105,
  &Kanonymous_of_reference_liftableQF104I,
  (D) 1
};

static _KLsignatureGVKe K105 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040197,
  &K106
};

static _KLsimple_object_vectorGVKd_1 K106 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcomputationGVdfmc_flow_graph
};

_KLsimple_methodGVKe Klookup_aliasVdfmc_flow_graph = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K108,
  &Klookup_aliasVdfmc_flow_graphI
};

static _KLsignatureGVKe K108 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944073,
  &K109
};

static _KLsimple_object_vectorGVKd_2 K109 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLlistGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K110 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K111,
  &K112
};

static _KLsimple_object_vectorGVKd_2 K111 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLclosure_entry_strengthGVdfmc_flow_graph,
  &KLclosure_entry_strengthGVdfmc_flow_graph
};

static _KLsimple_object_vectorGVKd_1 K112 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLclosure_entry_strengthGVdfmc_flow_graph
};

static _KLsignatureGVKe K114 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943057,
  &K115
};

static _KLsimple_object_vectorGVKd_4 K115 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KLtemporaryGVdfmc_flow_graph,
  &KLlambda_lexical_environmentGVdfmc_flow_graph,
  &KLlambda_lexical_environmentGVdfmc_flow_graph,
  &KLclosure_entry_strengthGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K116 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K106,
  &KDsignature_LbooleanG_typesVKi
};

_KLsimple_methodGVKe Kclosure_callQVdfmc_flow_graphMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K124,
  &Kclosure_callQVdfmc_flow_graphMM0I
};

_KLsimple_methodGVKe Kclosure_callQVdfmc_flow_graphMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &Kclosure_callQVdfmc_flow_graphMM1I
};

static _KLpairGVKd K121 = {
  &KLpairGVKdW /* wrapper */,
  &Kclosure_callQVdfmc_flow_graphMM0,
  &K122
};

static _KLpairGVKd K122 = {
  &KLpairGVKdW /* wrapper */,
  &Kclosure_callQVdfmc_flow_graphMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_13 K123 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 53,
  "closure-call?"
};

static _KLsignatureGVKe K124 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040201,
  &K125
};

static _KLsimple_object_vectorGVKd_2 K125 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLtemporaryGVdfmc_flow_graph,
  &KLsimple_callGVdfmc_flow_graph
};

static _KLsignatureGVKe K126 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943045,
  &K127
};

static _KLsimple_object_vectorGVKd_1 K127 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLlambda_lexical_environmentGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K128 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K5,
  &KDsignature_LbooleanG_typesVKi
};

/* Code */

D Klambda_make_closureVdfmc_flow_graphI (D lambda_) {
  D returnPexit_2_;
  D T2;
  D T3T, T3;
  D T4;
  D T5_0;
  D T6_0;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  _KLsimple_object_vectorGVKd_1 T12 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T13;
  D T14;
  D T15_0;
  D T16_0;
  D T17;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:210
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:212
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
  T8 = SLOT_VALUE_INITD(lambda_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
  T3T = T8;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
    T3 = T3T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
    T9 = primitive_idQ(T3,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
    if (T9 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
      T10 = SLOT_VALUE_INITD(T3, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:214
      T11 = primitive_instanceQ(T10,&KLmake_closureGVdfmc_flow_graph);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:214
      if (T11 != &KPfalseVKi) {
        T7 = T10;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:215
        T12.vector_element_[0] = T7;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:212
        T13 = MV_SET_REST_AT(&T12, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:212
        T5_0 = T13;
        goto L1;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:214
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
      T14 = SLOT_VALUE_INITD(T3, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
      T15_0 = T14;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
      T16_0 = T15_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T15_0);
        primitive_type_check(T16_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
      T17 = T16_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
      T3T = T17;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:213
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:218
  T4 = &KPfalseVKi;
  MV_SET_ELT(0, &KPfalseVKi);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:212
  T5_0 = T4;
  L1: ;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:212
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:210
  T6_0 = T5_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T5_0);
    primitive_type_check(T6_0, &K2);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:210
  MV_SET_COUNT(1);
  return(T6_0);
}

D Kdo_over_lambda_usersVdfmc_flow_graphI (D f_, D env_) {
  D T3;
  D T4;
  D T5;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:106
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:115
  T5 = SLOT_VALUE_INITD(env_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:116
  Kdo_overF10I(f_, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:116
  CONGRUENT_CALL_PROLOG(&KiepVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:116
  T4 = Kdo_overF10I(f_, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:106
  MV_SET_COUNT(0);
  return(T4);
}

static D Kdo_overF10I (D f_, D code_) {
  D T2;
  D T3T, T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11T, T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20_0;
  D T21_0;
  D T22;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:108
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
  T2 = CALL1(&KreferencesVdfmc_commonMM0, code_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
  T3T = T2;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
    T3 = T3T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
    T17 = primitive_idQ(T3,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
    if (T17 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
      T18 = SLOT_VALUE_INITD(T3, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      CONGRUENT_CALL_PROLOG(&Kref_usersVdfmc_flow_graph, 1);
      T4 = CONGRUENT_CALL1(T18);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T5 = CALL1(&Kforward_iteration_protocolVKd, T4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T6 = T5;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T7 = MV_GET_ELT(1);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T8 = MV_GET_ELT(2);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T9 = MV_GET_ELT(3);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T10 = MV_GET_ELT(5);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      T11T = T6;
    L1: ;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
        T11 = T11T;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
        T12 = CALL3(T9, T4, T11, T7);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
        if (T12 == &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
          T13 = CALL2(T10, T4, T11);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:111
          CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
          T14 = CONGRUENT_CALL1(T13);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:111
          CALL1(f_, T14);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
          T15 = CALL2(T8, T4, T11);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
          T11T = T15;
          goto L1;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:110
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
      T19 = SLOT_VALUE_INITD(T3, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
      T20_0 = T19;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
      T21_0 = T20_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T20_0);
        primitive_type_check(T21_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
      T22 = T21_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
      T3T = T22;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
    T16 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:109
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:108
  return(T16);
}

D Kref_usersVdfmc_flow_graphMM0I (D ref_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:98
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:99
  CONGRUENT_CALL_PROLOG(&KusersVdfmc_common, 1);
  T2_0 = CONGRUENT_CALL1(ref_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:98
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kref_usersVdfmc_flow_graphMM1I (D ref_) {
  D T2_0;
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:102
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:103
  T3 = SLOT_VALUE_INITD(ref_, 4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:103
  CONGRUENT_CALL_PROLOG(&KusersVdfmc_common, 1);
  T2_0 = CONGRUENT_CALL1(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:102
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kanalyze_environmentsVdfmc_flow_graphMM0I (D f_) {
  D T2;
  D T3;
  D T4;
  D T5T, T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12_0;
  D T13_0;
  D T14;
  D T15;
  D T16;
  D T17_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:12
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:14
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T2 = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:14
  CALL1(&Kcompute_closureVdfmc_flow_graphMM0, T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
  T4 = CALL1(&KentriesVdfmc_flow_graphMM0, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
  T5T = T4;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
    T5 = T5T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
    T9 = primitive_idQ(T5,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
    if (T9 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
      T10 = SLOT_VALUE_INITD(T5, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:18
      CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
      T6 = CONGRUENT_CALL1(f_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:18
      CALL2(&Kanalyze_blockVdfmc_flow_graphMM0, T6, T10);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
      T11 = SLOT_VALUE_INITD(T5, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
      T12_0 = T11;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
      T13_0 = T12_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T12_0);
        primitive_type_check(T13_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
      T14 = T13_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
      T5T = T14;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:17
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:20
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T7 = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:20
  T8 = CALL1(&KclosureVdfmc_flow_graphMM0, T7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:20
  T15 = primitive_idQ(T8,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:20
  T16 = primitive_not(T15);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:20
  T17_0 = T16;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:12
  MV_SET_COUNT(1);
  return(T17_0);
}

D Kcompute_closureVdfmc_flow_graphMM0I (D env_) {
  DWORD T2T, T2;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10T, T10;
  D T11;
  D T12;
  D reference_environment_;
  D Utmp_;
  D T15;
  D T16;
  D strength_;
  D T18;
  D T19;
  D T20;
  D T21;
  D T22;
  DWORD T23;
  D T24;
  D T25;
  D T26;
  D T27;
  DWORD T28;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:77
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
  T20 = SLOT_VALUE_INITD(env_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
  T21 = SLOT_VALUE_INITD(T20, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
  T22 = SLOT_VALUE_INITD(T21, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
  T23 = primitive_cast_integer_as_raw(T22);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
  T2T = 1;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
    T2 = T2T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
    T24 = primitive_machine_word_equalQ(T2,T23);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
    if (T24 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
      T25 = SLOT_VALUE_INITD(T20, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
      T26 = REPEATED_D_SLOT_VALUE_TAGGED(T25, 2, T2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      CONGRUENT_CALL_PROLOG(&KusersVdfmc_common, 1);
      T3 = CONGRUENT_CALL1(T26);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T4 = CALL1(&Kforward_iteration_protocolVKd, T3);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T5 = T4;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T6 = MV_GET_ELT(1);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T7 = MV_GET_ELT(2);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T8 = MV_GET_ELT(3);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T9 = MV_GET_ELT(5);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      T10T = T5;
    L1: ;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
        T10 = T10T;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
        T11 = CALL3(T8, T3, T10, T6);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
        if (T11 == &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
          T12 = CALL2(T9, T3, T10);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:83
          CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
          reference_environment_ = CONGRUENT_CALL1(T12);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:84
          T27 = primitive_idQ(reference_environment_,env_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:84
          if (T27 == &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:87
            CONGRUENT_CALL_PROLOG(&Kclosure_callQVdfmc_flow_graph, 2);
            Utmp_ = CONGRUENT_CALL2(T26, T12);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:87
            if (Utmp_ != &KPfalseVKi) {
              T16 = Utmp_;
            } else {
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:87
              T15 = CALL1(&Kclosure_setupQVdfmc_flow_graphMM0, T12);
              T16 = T15;
            }
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:87
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:87
            if (T16 != &KPfalseVKi) {
              strength_ = (D) 5;
            } else {
              strength_ = (D) 9;
            }
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:87
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:92
            CALL4(&Kclose_overVdfmc_flow_graph, T26, reference_environment_, env_, strength_);
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:84
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
          T18 = CALL2(T7, T3, T10);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
          T10T = T18;
          goto L1;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:81
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
      T28 = primitive_machine_word_add_signal_overflow(T2,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
      T2T = T28;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
    T19 = &KPfalseVKi;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:79
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:77
  MV_SET_COUNT(0);
  return(T19);
}

D Kanalyze_blockVdfmc_flow_graphMM0I (D env_, D entry_) {
  D T3;
  D T4;
  D T5_0;
  D T6;
  D T7T, T7;
  D result_T, result_;
  D T9;
  D T10;
  D T11;
  D T12_0;
  D T13_0;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:23
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
  T6 = SLOT_VALUE_INITD(entry_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
  T7T = T6;
  result_T = &KPtrueVKi;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
    T7 = T7T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
    result_ = result_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
    T9 = primitive_idQ(T7,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
    if (T9 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
      T10 = SLOT_VALUE_INITD(T7, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
      if (result_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T11 = SLOT_VALUE_INITD(T7, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T12_0 = T11;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T13_0 = T12_0;
        {
          MV_CHECK_TYPE_PROLOGUE(T12_0);
          primitive_type_check(T13_0, &KLlistGVKd);
          MV_CHECK_TYPE_EPILOGUE();
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T14 = T13_0;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T16 = Klocal_exitQVdfmc_flow_graphMM0I(env_, T10);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T15 = T16;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
        T7T = T14;
        result_T = T15;
        goto L0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
  if (result_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:29
    T3 = KentriesVdfmc_flow_graphMM0I(env_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:29
    T17 = KsizeVKdMM30I(T3);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:29
    T18 = primitive_idQ(T17,(D) 5);
    T4 = T18;
  } else {
    T4 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:28
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:27
  Klocal_entry_stateQ_setterVdfmc_flow_graphMM0I(T4, entry_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:27
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:23
  MV_SET_COUNT(1);
  return(T5_0);
}

D Klocal_exitQVdfmc_flow_graphMM0I (D env_, D exit_) {
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:32
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:35
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(exit_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:35
  T4 = primitive_idQ(T3,env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:35
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:32
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kclosure_setupQVdfmc_flow_graphMM0I (D c_) {
  D T2;
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:58
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:59
  T2 = primitive_instanceQ(c_,&KLinitialize_closureGVdfmc_flow_graph);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:59
  T3_0 = T2;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:58
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kclose_overVdfmc_flow_graphI (D tmp_, D reference_environment_, D home_environment_, D strength_) {
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20;
  D create_env_;
  D T22;
  D alias_;
  D T24;
  D T25;
  D T26T, T26;
  D user_env_;
  D T28;
  D T29;
  D T30;
  D T31;
  D T32;
  D T33;
  D T34;
  D T35;
  D T36;
  D T37;
  D T38;
  D T39;
  D T40;
  D T41;
  D T42;
  D T43;
  D T44_0;
  D T45;
  D T46;
  D T47;
  D T48;
  D T49_0;
  D T50_0;
  D T51;
  D T52;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:146
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
  T37 = primitive_idQ(reference_environment_,home_environment_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
  if (T37 != &KPfalseVKi) {
    T6 = T37;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:152
    T38 = SLOT_VALUE_INITD(reference_environment_, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:152
    T5 = Klambda_usedQVdfmc_flow_graphMM0I(T38);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:152
    T39 = primitive_not(T5);
    T6 = T39;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
  if (T6 != &KPfalseVKi) {
    T7 = &KPfalseVKi;
    T36 = T7;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:154
    T8 = KclosureVdfmc_flow_graphMM0I(reference_environment_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:154
    T40 = KmemberQVKdMM3I(tmp_, T8, &KPempty_vectorVKi, &KEEVKd);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
    if (T40 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:157
      T9 = Kclosed_overQVdfmc_flow_graphMM0I(tmp_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:157
      T10 = CALL2(&Kmerge_closure_entry_strengthsVdfmc_flow_graph, T9, strength_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:156
      Kclosed_overQ_setterVdfmc_flow_graphMM0I(T10, tmp_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:156
      T11 = &KPfalseVKi;
      T35 = T11;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:158
      T12 = KliftureVdfmc_flow_graphMM0I(reference_environment_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:158
      T13 = Klookup_aliasVdfmc_flow_graphI(T12, tmp_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
      if (T13 != &KPfalseVKi) {
        T14 = &KPfalseVKi;
        T34 = T14;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:167
        T15 = Kreference_liftableQVdfmc_flow_graphI(tmp_, reference_environment_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:167
        if (T15 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:168
          Klift_referenceVdfmc_flow_graphI(tmp_, reference_environment_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:169
          T16 = Kclose_over_lambda_usersVdfmc_flow_graphI(tmp_, reference_environment_, home_environment_, strength_);
          T33 = T16;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:173
          T17 = KclosureVdfmc_flow_graphMM0I(reference_environment_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:173
          T41 = Kadd_newXVKdMM3I(T17, tmp_, &KPempty_vectorVKi, &KEEVKd);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:172
          Kclosure_setterVdfmc_flow_graphMM0I(T41, reference_environment_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:175
          T18 = Kclosed_overQVdfmc_flow_graphMM0I(tmp_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:175
          T19 = CALL2(&Kmerge_closure_entry_strengthsVdfmc_flow_graph, T18, strength_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:174
          Kclosed_overQ_setterVdfmc_flow_graphMM0I(T19, tmp_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:176
          Kclose_over_lambda_usersVdfmc_flow_graphI(tmp_, reference_environment_, home_environment_, strength_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:178
          T42 = SLOT_VALUE_INITD(reference_environment_, 1);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:183
          T20 = CALL1(&KreferencesVdfmc_commonMM0, T42);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:183
          T44_0 = KelementVKdMM25I(T20, (D) 1, &KPempty_vectorVKi, &Kunsupplied_objectVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:183
          T43 = T44_0;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:183
          CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
          create_env_ = CONGRUENT_CALL1(T43);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:184
          T22 = CALL1(&KliftureVdfmc_flow_graphMM0, create_env_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:184
          alias_ = Klookup_aliasVdfmc_flow_graphI(T22, tmp_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:185
          if (alias_ != &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:187
            T24 = CALL1(&Kclosed_overQVdfmc_flow_graphMM0, alias_);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:187
            T25 = CALL2(&Kmerge_closure_entry_strengthsVdfmc_flow_graph, T24, strength_);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:186
            CALL2(&Kclosed_overQ_setterVdfmc_flow_graphMM0, T25, alias_);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
            T45 = SLOT_VALUE_INITD(tmp_, 0);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
            T26T = T45;
          L0: ;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
              T26 = T26T;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
              T46 = primitive_idQ(T26,&KPempty_listVKi);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
              if (T46 == &KPfalseVKi) {
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
                T47 = SLOT_VALUE_INITD(T26, 0);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:189
                CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
                user_env_ = CONGRUENT_CALL1(T47);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:190
                T28 = CALL2(&Knested_environmentQVdfmc_flow_graph, user_env_, reference_environment_);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:190
                if (T28 != &KPfalseVKi) {
                  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:192
                  CALL3(&Kreplace_temporary_referencesXVdfmc_flow_graphMM0, T47, tmp_, alias_);
                }
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:190
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
                T48 = SLOT_VALUE_INITD(T26, 1);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
                T49_0 = T48;
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
                T50_0 = T49_0;
                {
                  MV_CHECK_TYPE_PROLOGUE(T49_0);
                  primitive_type_check(T50_0, &KLlistGVKd);
                  MV_CHECK_TYPE_EPILOGUE();
                }
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
                T51 = T50_0;
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
                T26T = T51;
                goto L0;
              }
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:188
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:195
            T29 = MAKE_CLOSURE_INITD(&Kanonymous_of_close_overF113, 2, alias_, tmp_);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:195
            T52 = SLOT_VALUE_INITD(reference_environment_, 1);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:195
            CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T29, T52);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:203
            T30 = CALL1(&Kcompute_closureVdfmc_flow_graphMM0, create_env_);
            T32 = T30;
          } else {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:185
            T31 = &KPfalseVKi;
            T32 = T31;
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:185
          T33 = T32;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:167
        T34 = T33;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
      T35 = T34;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
    T36 = T35;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:151
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:146
  MV_SET_COUNT(0);
  return(T36);
}

static D Kanonymous_of_close_overF113I (D f_) {
  D f_env_;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:195
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:196
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  f_env_ = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:197
  T3 = CALL1(&KclosureVdfmc_flow_graphMM0, f_env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:197
  T8 = KmemberQVKdMM3I(CREF(1), T3, &KPempty_vectorVKi, &KEEVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:197
  if (T8 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:198
    T4 = CALL1(&KclosureVdfmc_flow_graphMM0, f_env_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:198
    T9 = KremoveXVKdMM7I(T4, CREF(1), &KPempty_vectorVKi, &KEEVKd, &KPfalseVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:198
    T10 = Kadd_newXVKdMM3I(T9, CREF(0), &KPempty_vectorVKi, &KEEVKd);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:198
    CALL2(&Kclosure_setterVdfmc_flow_graphMM0, T10, f_env_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:198
    T5 = T10;
    MV_SET_ELT(0, T10);
    MV_SET_COUNT(1);
    T7 = T5;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:197
    T6 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T7 = T6;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:197
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:195
  return(T7);
}

D Kmerge_closure_entry_strengthsVdfmc_flow_graphI (D s1_, D s2_) {
  D T2_0;
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D T7;
  D T8_0;
  D T9;
  DWORD T10;
  DWORD T11;
  D T12;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:67
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:70
  if (s1_ != &KPfalseVKi) {
    T6 = s1_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
    if (s2_ != &KPfalseVKi) {
      T7 = s2_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      T10 = primitive_cast_integer_as_raw(T7);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      T11 = primitive_cast_integer_as_raw(T6);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      T12 = primitive_machine_word_less_thanQ(T10,T11);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      if (T12 != &KPfalseVKi) {
        T9 = T6;
      } else {
        T9 = T7;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      T8_0 = T9;
      T3_0 = T8_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
      T2_0 = T6;
      T3_0 = T2_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:71
    T5_0 = T3_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:73
    T4_0 = s2_;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:70
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:67
  MV_SET_COUNT(1);
  return(T5_0);
}

D Klookup_aliasVdfmc_flow_graphI (D lifture_, D tmp_) {
  D T2_0;
  D T3;
  D T4_0;
  D T5;
  D T6_0;
  D T7_0;
  D T8_0;
  D T9;
  D T10;
  D T11;
  D T12;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:302
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:303
  T9 = primitive_idQ(lifture_,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:303
  if (T9 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:304
    T2_0 = &KPfalseVKi;
    T8_0 = T2_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:305
    T10 = SLOT_VALUE_INITD(lifture_, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:305
    T3 = KEEVKdI(T10, tmp_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:303
    if (T3 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:306
      T11 = SLOT_VALUE_INITD(lifture_, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:306
      T4_0 = CALL1(&KheadVKd, T11);
      T7_0 = T4_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:308
      T12 = SLOT_VALUE_INITD(lifture_, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:308
      T5 = CALL1(&KtailVKd, T12);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:308
      T6_0 = CALL2(&Klookup_aliasVdfmc_flow_graph, T5, tmp_);
      T7_0 = T6_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:303
    T8_0 = T7_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:303
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:302
  MV_SET_COUNT(1);
  return(T8_0);
}

D Kreference_liftableQVdfmc_flow_graphI (D tmp_, D ref_env_) {
  volatile D T2;
  volatile D T3;
  volatile D T4;
  volatile D returnPexit_3_;
  volatile D T6;
  volatile D T7;
  volatile D f_ref_;
  volatile D T9;
  volatile D T10;
  volatile D T11_0;
  volatile D T12_0;
  volatile D T13_0;
  volatile D T14;
  volatile D T15;
  volatile D T16;
  volatile D T17;
  volatile D T18;
  volatile D T19;
  volatile D make_closure_;
  volatile D T21_0;
  volatile D T22_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:222
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  CONGRUENT_CALL_PROLOG(&KcellQVdfmc_flow_graph, 1);
  T2 = CONGRUENT_CALL1(tmp_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  if (T2 != &KPfalseVKi) {
    T3 = &KPfalseVKi;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:226
    T14 = primitive_instanceQ(tmp_,&KLentry_stateGVdfmc_flow_graph);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:226
    T15 = primitive_not(T14);
    T3 = T15;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:227
    T16 = SLOT_VALUE_INITD(tmp_, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:227
    T17 = primitive_instanceQ(T16,&KLmake_closureGVdfmc_flow_graph);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:227
    T18 = primitive_not(T17);
    T4 = T18;
  } else {
    T4 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  if (T4 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:228
    ENTER_EXIT_FRAME(returnPexit_3_);
    if (nlx_setjmp(FRAME_DEST(returnPexit_3_))) {
        T11_0 = FRAME_RETVAL(returnPexit_3_);
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:229
      T19 = SLOT_VALUE_INITD(ref_env_, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:230
      T7 = CALL1(&KreferencesVdfmc_commonMM0, T19);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:230
      T21_0 = KelementVKdMM25I(T7, (D) 1, &KPempty_vectorVKi, &Kunsupplied_objectVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:230
      make_closure_ = T21_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:231
      f_ref_ = CALL1(&KtemporaryVdfmc_flow_graph, make_closure_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:233
      T9 = MAKE_CLOSURE_INITD(&Kanonymous_of_reference_liftableQF104, 2, f_ref_, returnPexit_3_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:232
      Kdo_over_lambda_using_computationsVdfmc_flow_graphI(T9, ref_env_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:242
      T10 = &KPtrueVKi;
      MV_SET_ELT(0, &KPtrueVKi);
      MV_SET_COUNT(1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:228
    T11_0 = T10;
      /* invalidate returnPexit_3_ */
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:228
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:228
    T22_0 = T11_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T11_0);
      primitive_type_check(T22_0, &KLbooleanGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T13_0 = T22_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
    T12_0 = &KPfalseVKi;
    T13_0 = T12_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:225
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:222
  MV_SET_COUNT(1);
  return(T13_0);
}

D Klift_referenceVdfmc_flow_graphI (D closed_ref_, D ref_env_) {
  D Utmp_;
  D T4;
  D new_arg_name_;
  D new_temp_;
  D T7;
  D T8;
  D T9;
  D T10T, T10;
  D T11;
  D T12;
  D alias_;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20;
  D T21_0;
  D T22_0;
  D T23;
  D T24;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:246
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:261
  CONGRUENT_CALL_PROLOG(&KnameVdfmc_common, 1);
  Utmp_ = CONGRUENT_CALL1(closed_ref_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:261
  if (Utmp_ != &KPfalseVKi) {
    new_arg_name_ = Utmp_;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:261
    T4 = Kdylan_variable_nameVdfmc_readerI(IKJimplicit_argument_);
    new_arg_name_ = T4;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:261
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:262
  new_temp_ = Kadd_function_argumentVdfmc_flow_graphMM0I(ref_env_, new_arg_name_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:264
  T7 = KliftureVdfmc_flow_graphMM0I(ref_env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:264
  T8 = Kadd_aliasVdfmc_flow_graphI(T7, closed_ref_, new_temp_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:263
  Klifture_setterVdfmc_flow_graphMM0I(T8, ref_env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:266
  T9 = MAKE_CLOSURE_INITD(&Kanonymous_of_lift_referenceF95, 1, closed_ref_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:265
  Kdo_over_lambda_using_computationsVdfmc_flow_graphI(T9, ref_env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
  T17 = SLOT_VALUE_INITD(closed_ref_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
  T10T = T17;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
    T10 = T10T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
    T18 = primitive_idQ(T10,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
    if (T18 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
      T19 = SLOT_VALUE_INITD(T10, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:278
      CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
      T11 = CONGRUENT_CALL1(T19);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:278
      T12 = CALL1(&KliftureVdfmc_flow_graphMM0, T11);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:278
      alias_ = Klookup_aliasVdfmc_flow_graphI(T12, closed_ref_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:279
      if (alias_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:281
        CALL3(&Kreplace_temporary_referencesXVdfmc_flow_graphMM0, T19, closed_ref_, alias_);
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:279
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
      T20 = SLOT_VALUE_INITD(T10, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
      T21_0 = T20;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
      T22_0 = T21_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T21_0);
        primitive_type_check(T22_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
      T23 = T22_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
      T10T = T23;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:277
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:284
  T14 = MAKE_CLOSURE_INITD(&Kanonymous_of_lift_referenceF94, 1, closed_ref_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:284
  T24 = SLOT_VALUE_INITD(ref_env_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:284
  CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T14, T24);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:294
  Kcompute_closureVdfmc_flow_graphMM0I(ref_env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:297
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T15 = CONGRUENT_CALL1(closed_ref_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:297
  T16 = CALL1(&Kcompute_closureVdfmc_flow_graphMM0, T15);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:246
  MV_SET_COUNT(0);
  return(T16);
}

D Kclose_over_lambda_usersVdfmc_flow_graphI (D tmp_, D reference_environment_, D home_environment_, D strength_) {
  D T4;
  D T5;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:134
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:140
  T4 = MAKE_CLOSURE_INITD(&Kanonymous_of_close_over_lambda_usersF54, 3, strength_, home_environment_, tmp_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:139
  T5 = Kdo_over_lambda_usersVdfmc_flow_graphI(T4, reference_environment_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:134
  MV_SET_COUNT(0);
  return(T5);
}

D Knested_environmentQVdfmc_flow_graphI (D test_env_, D target_env_) {
  D foundPexit_4_;
  D T3;
  D env_T, env_;
  D T5;
  D T6;
  D T7_0;
  D T8_0;
  D T9;
  _KLsimple_object_vectorGVKd_1 T10 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T11;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:317
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:320
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
  env_T = test_env_;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
    env_ = env_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
    if (env_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:322
      T9 = primitive_idQ(env_,target_env_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:322
      if (T9 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:322
        T10.vector_element_[0] = &KPtrueVKi;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:320
        T11 = MV_SET_REST_AT(&T10, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:320
        T7_0 = T11;
        goto L1;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:322
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
      CONGRUENT_CALL_PROLOG(&KouterVdfmc_flow_graph, 1);
      T5 = CONGRUENT_CALL1(env_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
      env_T = T5;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:321
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:324
  T6 = &KPfalseVKi;
  MV_SET_ELT(0, &KPfalseVKi);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:320
  T7_0 = T6;
  L1: ;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:320
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:317
  T8_0 = T7_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T7_0);
    primitive_type_check(T8_0, &KLbooleanGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:317
  MV_SET_COUNT(1);
  return(T8_0);
}

static D Kanonymous_of_close_over_lambda_usersF54I (D env_) {
  D T1;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:140
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:141
  T1 = CALL4(&Kclose_overVdfmc_flow_graph, CREF(2), env_, CREF(1), CREF(0));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:140
  return(T1);
}

static D Kanonymous_of_lift_referenceF95I (D c_) {
  D T1;
  D T2;
  D alias_;
  D T4;
  D T5;
  D T6;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:266
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:267
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T1 = CONGRUENT_CALL1(c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:267
  T2 = CALL1(&KliftureVdfmc_flow_graphMM0, T1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:267
  alias_ = Klookup_aliasVdfmc_flow_graphI(T2, CREF(0));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:268
  if (alias_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:270
    T4 = CALL2(&Kadd_call_argumentVdfmc_flow_graphMM0, c_, alias_);
    T6 = T4;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:273
    T5 = Kadd_call_argumentVdfmc_flow_graphMM0I(c_, CREF(0));
    T6 = T5;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:268
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:266
  return(T6);
}

static D Kanonymous_of_lift_referenceF94I (D f_) {
  D f_env_;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:284
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:285
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  f_env_ = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:286
  T3 = CALL1(&KclosureVdfmc_flow_graphMM0, f_env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:286
  T8 = KmemberQVKdMM3I(CREF(0), T3, &KPempty_vectorVKi, &KEEVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:286
  if (T8 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:287
    T4 = CALL1(&KclosureVdfmc_flow_graphMM0, f_env_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:287
    T9 = KremoveXVKdMM7I(T4, CREF(0), &KPempty_vectorVKi, &KEEVKd, &KPfalseVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:287
    CALL2(&Kclosure_setterVdfmc_flow_graphMM0, T9, f_env_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:287
    T5 = T9;
    MV_SET_ELT(0, T9);
    MV_SET_COUNT(1);
    T7 = T5;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:286
    T6 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T7 = T6;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:286
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:284
  return(T7);
}

D Kadd_function_argumentVdfmc_flow_graphMM0I (D env_, D name_) {
  D object_type_;
  D sig_;
  D sig_n_required_;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D sig_spec_;
  D T21;
  D T22;
  D T23;
  D T24;
  D T25;
  D T26;
  D T27;
  D T28;
  D T29_0;
  D T30;
  DWORD T31;
  DWORD T32;
  D T33;
  _KLsimple_object_vectorGVKd_1 T34 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T35;
  _KLsimple_object_vectorGVKd_1 T36 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T37_0;
  D T38;
  D T39_0;
  D T40;
  _KLsimple_object_vectorGVKd_24 T41 = {&KLsimple_object_vectorGVKdW, (D) 97};
  D new_sig_;
  _KLsimple_object_vectorGVKd_2 T43 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T44;
  _KLsimple_object_vectorGVKd_1 T45 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T46;
  _KLsimple_object_vectorGVKd_1 T47 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T48_0;
  D T49;
  D T50_0;
  D T51;
  _KLsimple_object_vectorGVKd_14 T52 = {&KLsimple_object_vectorGVKdW, (D) 57};
  D new_sig_spec_;
  D arg_;
  D T55_0;
  _KLsimple_object_vectorGVKd_6 T56 = {&KLsimple_object_vectorGVKdW, (D) 25};
  _KLsimple_object_vectorGVKd_1 T57 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T58;
  _KLsimple_object_vectorGVKd_1 T59 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T60_0;
  D T61;
  D T62_0;
  D T63;
  D T64;
  _KLsimple_object_vectorGVKd_1 T65 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T66;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:328
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:331
  T30 = SLOT_VALUE_INITD(env_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:332
  object_type_ = Kdylan_valueVdfmc_namespaceI(IKJLobjectG_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:334
  CONGRUENT_CALL_PROLOG(&KCfunction_signatureVdfmc_modeling, 1);
  sig_ = CONGRUENT_CALL1(T30);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:335
  sig_n_required_ = CALL1(&KCsignature_number_requiredVdfmc_modelingMM0, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:338
  T31 = primitive_cast_integer_as_raw(sig_n_required_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:338
  T32 = primitive_machine_word_add_signal_overflow(T31,4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:338
  T33 = primitive_cast_raw_as_integer(T32);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T34.vector_element_[0] = object_type_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T35 = primitive_copy_vector(&T34);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:340
  T6 = CALL1(&KCsignature_requiredVdfmc_modeling, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:340
  T7 = CALL3(&Kcopy_sequenceVKd, T6, &KJend_, sig_n_required_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T36.vector_element_[0] = T7;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T39_0 = Kobject_classVKdI(T35);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T40 = T39_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T37_0 = APPLY3(&Kconcatenate_asVKd, T40, T35, &T36);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:339
  T38 = T37_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:342
  T8 = CALL1(&KCsignature_keyQVdfmc_modelingMM0, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:343
  CONGRUENT_CALL_PROLOG(&KCsignature_keysVdfmc_modeling, 1);
  T9 = CONGRUENT_CALL1(sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:344
  T10 = CALL1(&KCsignature_keyQVdfmc_modelingMM0, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:344
  if (T10 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:345
    T11 = CALL1(&KCsignature_key_typesVdfmc_modeling, sig_);
    T12 = T11;
  } else {
    T12 = &KPempty_vectorVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:344
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:349
  CONGRUENT_CALL_PROLOG(&KCsignature_valuesVdfmc_modeling, 1);
  T13 = CONGRUENT_CALL1(sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:350
  CONGRUENT_CALL_PROLOG(&KCsignature_rest_valueVdfmc_modeling, 1);
  T14 = CONGRUENT_CALL1(sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:350
  if (T14 != &KPfalseVKi) {
    T15 = &KPtrueVKi;
  } else {
    T15 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:350
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:351
  CONGRUENT_CALL_PROLOG(&KCsignature_rest_valueVdfmc_modeling, 1);
  T16 = CONGRUENT_CALL1(sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:352
  T17 = CALL1(&KCsignature_number_valuesVdfmc_modelingMM0, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:353
  T18 = CALL1(&KCsignature_restQVdfmc_modelingMM0, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:356
  T19 = CALL1(&KCsignature_sealed_domainQVdfmc_modelingMM0, sig_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:337
  T41.vector_element_[0] = &KJnumber_required_;
  T41.vector_element_[1] = T33;
  T41.vector_element_[2] = &KJrequired_;
  T41.vector_element_[3] = T38;
  T41.vector_element_[4] = &KJkeyQ_;
  T41.vector_element_[5] = T8;
  T41.vector_element_[6] = &KJkeys_;
  T41.vector_element_[7] = T9;
  T41.vector_element_[8] = &KJkey_types_;
  T41.vector_element_[9] = T12;
  T41.vector_element_[10] = &KJvalues_;
  T41.vector_element_[11] = T13;
  T41.vector_element_[12] = &KJrest_valueQ_;
  T41.vector_element_[13] = T15;
  T41.vector_element_[14] = &KJrest_value_;
  T41.vector_element_[15] = T16;
  T41.vector_element_[16] = &KJnumber_values_;
  T41.vector_element_[17] = T17;
  T41.vector_element_[18] = &KJrestQ_;
  T41.vector_element_[19] = T18;
  T41.vector_element_[20] = &KJnextQ_;
  T41.vector_element_[21] = &KPfalseVKi;
  T41.vector_element_[22] = IKJsealed_domainQ_;
  T41.vector_element_[23] = T19;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:337
  MIEP_CALL_PROLOG(&K67);
  new_sig_ = KmakeVKdMdfmc_modelingM0I(&KLBsignatureGVdfmc_modeling, &T41, T33, T38, T8, T13, T15, T16, T17, T18, &KPfalseVKi, T19);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:357
  ENGINE_NODE_CALL_PROLOG(&KCfunction_signature_setterVdfmc_modeling, &K68, 2);
  ENGINE_NODE_CALL2(&K68, new_sig_, T30);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:358
  CONGRUENT_CALL_PROLOG(&Ksignature_specVdfmc_modeling, 1);
  sig_spec_ = CONGRUENT_CALL1(T30);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T43.vector_element_[0] = IKJvariable_name_;
  T43.vector_element_[1] = name_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  MIEP_CALL_PROLOG(&K67);
  T44 = KmakeVKdMdfmc_definitionsM18I(&KLrequired_variable_specGVdfmc_definitions, &T43, name_, &KPfalseVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T45.vector_element_[0] = T44;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T46 = primitive_copy_vector(&T45);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:364
  CONGRUENT_CALL_PROLOG(&Kspec_argument_required_variable_specsVdfmc_definitions, 1);
  T21 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T47.vector_element_[0] = T21;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T50_0 = Kobject_classVKdI(T46);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T51 = T50_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T48_0 = APPLY3(&Kconcatenate_asVKd, T51, T46, &T47);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:362
  T49 = T48_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:366
  CONGRUENT_CALL_PROLOG(&Kspec_argument_next_variable_specVdfmc_definitions, 1);
  T22 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:368
  CONGRUENT_CALL_PROLOG(&Kspec_argument_rest_variable_specVdfmc_definitions, 1);
  T23 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:370
  CONGRUENT_CALL_PROLOG(&Kspec_argument_keyQVdfmc_definitions, 1);
  T24 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:372
  CONGRUENT_CALL_PROLOG(&Kspec_argument_key_variable_specsVdfmc_definitions, 1);
  T25 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:374
  CONGRUENT_CALL_PROLOG(&Kspec_value_required_variable_specsVdfmc_definitions, 1);
  T26 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:376
  CONGRUENT_CALL_PROLOG(&Kspec_value_rest_variable_specVdfmc_definitions, 1);
  T27 = CONGRUENT_CALL1(sig_spec_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:360
  T52.vector_element_[0] = IKJargument_required_variable_specs_;
  T52.vector_element_[1] = T49;
  T52.vector_element_[2] = IKJargument_next_variable_spec_;
  T52.vector_element_[3] = T22;
  T52.vector_element_[4] = IKJargument_rest_variable_spec_;
  T52.vector_element_[5] = T23;
  T52.vector_element_[6] = IKJargument_keyQ_;
  T52.vector_element_[7] = T24;
  T52.vector_element_[8] = IKJargument_key_variable_specs_;
  T52.vector_element_[9] = T25;
  T52.vector_element_[10] = IKJvalue_required_variable_specs_;
  T52.vector_element_[11] = T26;
  T52.vector_element_[12] = IKJvalue_rest_variable_spec_;
  T52.vector_element_[13] = T27;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:360
  new_sig_spec_ = KmakeVKdMdfmc_definitionsM20I(&KLsignature_specGVdfmc_definitions, &T52, T23, T24, T26, T27);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:377
  ENGINE_NODE_CALL_PROLOG(&Ksignature_spec_setterVdfmc_modeling, &K77, 2);
  ENGINE_NODE_CALL2(&K77, new_sig_spec_, T30);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:378
  T56.vector_element_[0] = &KJname_;
  T56.vector_element_[1] = name_;
  T56.vector_element_[2] = IKJenvironment_;
  T56.vector_element_[3] = env_;
  T56.vector_element_[4] = IKJspecializer_;
  T56.vector_element_[5] = object_type_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:378
  T55_0 = KLlexical_required_variableGZ32ZconstructorVdfmc_flow_graphMM0I(&KLlexical_required_variableGVdfmc_flow_graph, &T56, &KPempty_listVKi, &KPfalseVKi, env_, &KPfalseVKi, name_, object_type_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:378
  arg_ = T55_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:382
  T57.vector_element_[0] = arg_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:382
  T58 = primitive_copy_vector(&T57);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:384
  CONGRUENT_CALL_PROLOG(&KparametersVdfmc_modeling, 1);
  T28 = CONGRUENT_CALL1(T30);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:384
  T59.vector_element_[0] = T28;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:384
  T62_0 = Kobject_classVKdI(T58);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:384
  T63 = T62_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:384
  T60_0 = APPLY3(&Kconcatenate_asVKd, T63, T58, &T59);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:384
  T61 = T60_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:383
  CONGRUENT_CALL_PROLOG(&Kparameters_setterVdfmc_modeling, 2);
  CONGRUENT_CALL2(T61, T30);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:386
  T64 = SLOT_VALUE_INITD(env_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:386
  T65.vector_element_[0] = T64;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:386
  MIEP_CALL_PROLOG(&K80);
  T66 = Kconcatenate_asVKdMM1I(&KLstretchy_vectorGVKd, T58, &T65);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:385
  CALL2(&Ktemporaries_setterVdfmc_flow_graph, T66, env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:387
  T29_0 = arg_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:328
  MV_SET_COUNT(1);
  return(T29_0);
}

D Kadd_aliasVdfmc_flow_graphI (D lifture_, D tmp_, D aliased_tmp_) {
  D T4;
  D T5;
  D T6_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:312
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  T4 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  SLOT_VALUE_SETTER(aliased_tmp_, T4, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  SLOT_VALUE_SETTER(lifture_, T4, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  T5 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  SLOT_VALUE_SETTER(tmp_, T5, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  SLOT_VALUE_SETTER(T4, T5, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:314
  T6_0 = T5;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:312
  MV_SET_COUNT(1);
  return(T6_0);
}

D Kdo_over_lambda_using_computationsVdfmc_flow_graphI (D f_, D env_) {
  D T3;
  D T4;
  D T5;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:119
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:130
  T5 = SLOT_VALUE_INITD(env_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:131
  Kdo_overF64I(f_, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:131
  CONGRUENT_CALL_PROLOG(&KiepVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:131
  T4 = Kdo_overF64I(f_, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:119
  MV_SET_COUNT(0);
  return(T4);
}

static D Kdo_overF64I (D f_, D code_) {
  D T2;
  D T3T, T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11T, T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20_0;
  D T21_0;
  D T22;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:121
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
  T2 = CALL1(&KreferencesVdfmc_commonMM0, code_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
  T3T = T2;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
    T3 = T3T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
    T17 = primitive_idQ(T3,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
    if (T17 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
      T18 = SLOT_VALUE_INITD(T3, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      CONGRUENT_CALL_PROLOG(&Kref_usersVdfmc_flow_graph, 1);
      T4 = CONGRUENT_CALL1(T18);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T5 = CALL1(&Kforward_iteration_protocolVKd, T4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T6 = T5;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T7 = MV_GET_ELT(1);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T8 = MV_GET_ELT(2);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T9 = MV_GET_ELT(3);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T10 = MV_GET_ELT(5);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      T11T = T6;
    L1: ;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
        T11 = T11T;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
        T12 = CALL3(T9, T4, T11, T7);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
        if (T12 == &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
          T13 = CALL2(T10, T4, T11);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:124
          T14 = CALL1(&Kclosure_setupQVdfmc_flow_graphMM0, T13);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:124
          if (T14 == &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:125
            CALL1(f_, T13);
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:124
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
          T15 = CALL2(T8, T4, T11);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
          T11T = T15;
          goto L1;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:123
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
      T19 = SLOT_VALUE_INITD(T3, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
      T20_0 = T19;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
      T21_0 = T20_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T20_0);
        primitive_type_check(T21_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
      T22 = T21_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
      T3T = T22;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
    T16 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:122
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:121
  return(T16);
}

D Kadd_call_argumentVdfmc_flow_graphMM0I (D c_, D arg_) {
  D T3;
  _KLsimple_object_vectorGVKd_1 T4 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T5;
  D T6;
  _KLsimple_object_vectorGVKd_1 T7 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T8_0;
  D T9;
  D T10_0;
  D T11;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:390
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:392
  CONGRUENT_CALL_PROLOG(&Kadd_userXVdfmc_common, 2);
  CONGRUENT_CALL2(arg_, c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T4.vector_element_[0] = arg_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T5 = primitive_copy_vector(&T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T6 = SLOT_VALUE_INITD(c_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T7.vector_element_[0] = T6;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T10_0 = Kobject_classVKdI(T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T11 = T10_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T8_0 = APPLY3(&Kconcatenate_asVKd, T11, T5, &T7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T9 = T8_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  CALL2(&Karguments_setterVdfmc_flow_graph, T9, c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:393
  T3 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:390
  MV_SET_COUNT(0);
  return(T3);
}

static D Kanonymous_of_reference_liftableQF104I (D c_) {
  D T1;
  D T2;
  D T3;
  _KLsimple_object_vectorGVKd_1 T4 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T5;
  D T6;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:233
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:234
  CONGRUENT_CALL_PROLOG(&Kclosure_callQVdfmc_flow_graph, 2);
  T1 = CONGRUENT_CALL2(CREF(0), c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:234
  if (T1 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:234
    T2 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T3 = T2;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:238
    T4.vector_element_[0] = &KPfalseVKi;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:228
    T5 = MV_SET_REST_AT(&T4, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:228
    T6 = NLX(CREF(1), T5);
    T3 = T6;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:234
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:233
  return(T3);
}

D Kclosure_callQVdfmc_flow_graphMM0I (D t_, D c_) {
  D f_t_;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:48
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:49
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  f_t_ = CONGRUENT_CALL1(c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
  T8 = primitive_idQ(t_,f_t_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
  if (T8 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
    CONGRUENT_CALL_PROLOG(&KgeneratorVdfmc_flow_graph, 1);
    T4 = CONGRUENT_CALL1(f_t_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
    T9 = primitive_instanceQ(T4,&KLmake_closureGVdfmc_flow_graph);
    T5 = T9;
  } else {
    T5 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
  if (T5 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:51
    T10 = SLOT_VALUE_INITD(c_, 7);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:51
    T11 = KmemberQVKdMM2I(f_t_, T10, &KPempty_vectorVKi, &KEEVKd);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:51
    T12 = primitive_not(T11);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:51
    T13_0 = T12;
    T7 = T13_0;
    MV_SET_COUNT(1);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
    T6 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T7 = T6;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:50
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:48
  return(T7);
}

D Kclosure_callQVdfmc_flow_graphMM1I (D t_, D c_) {
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:54
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:55
  T3 = &KPfalseVKi;
  MV_SET_ELT(0, &KPfalseVKi);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/flow-graph/closure.dylan:54
  return(T3);
}


/* SYSTEM INIT CODE */

void _Init_dfmc_flow_graph__X_closure_for_system () {
  extern D KPresolve_symbolVKiI(D);
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJimplicit_argument_);
    if (T0 != &KJimplicit_argument_) {
      IKJimplicit_argument_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJLobjectG_);
    if (T0 != &KJLobjectG_) {
      IKJLobjectG_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsealed_domainQ_);
    if (T0 != &KJsealed_domainQ_) {
      IKJsealed_domainQ_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJvariable_name_);
    if (T0 != &KJvariable_name_) {
      IKJvariable_name_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJargument_required_variable_specs_);
    if (T0 != &KJargument_required_variable_specs_) {
      IKJargument_required_variable_specs_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJargument_next_variable_spec_);
    if (T0 != &KJargument_next_variable_spec_) {
      IKJargument_next_variable_spec_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJargument_rest_variable_spec_);
    if (T0 != &KJargument_rest_variable_spec_) {
      IKJargument_rest_variable_spec_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJargument_keyQ_);
    if (T0 != &KJargument_keyQ_) {
      IKJargument_keyQ_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJargument_key_variable_specs_);
    if (T0 != &KJargument_key_variable_specs_) {
      IKJargument_key_variable_specs_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJvalue_required_variable_specs_);
    if (T0 != &KJvalue_required_variable_specs_) {
      IKJvalue_required_variable_specs_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJvalue_rest_variable_spec_);
    if (T0 != &KJvalue_rest_variable_spec_) {
      IKJvalue_rest_variable_spec_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJenvironment_);
    if (T0 != &KJenvironment_) {
      IKJenvironment_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJspecializer_);
    if (T0 != &KJspecializer_) {
      IKJspecializer_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dfmc_flow_graph__X_closure_for_user () {
  return;
}


/* eof */
