/**
 ** This file was automatically generated by the Cyclone scheme compiler
 ** http://justinethier.github.io/cyclone/
 **
 ** (c) 2014-2024 Justin Ethier
 ** Version 0.36.0 
 **
 **/

#define closcall1(td, clo, buf) \
if (obj_is_not_closure(clo)) { \
   Cyc_apply(td, clo, 1, buf ); \
} else { \
   ((clo)->fn)(td, clo, 1, buf); \
;\
}
#define return_closcall1(td, clo,a1) { \
 char top; \
 object buf[1]; buf[0] = a1;\
 if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \
     GC(td, clo, buf, 1); \
     return; \
 } else {\
     closcall1(td, (closure) (clo), buf); \
     return;\
 } \
}

#define continue_or_gc1(td, clo,a1) { \
 char *top = alloca(sizeof(char)); \
 if (stack_overflow(top, (((gc_thread_data *)data)->stack_limit))) { \
     object buf[1]; buf[0] = a1;\
     GC(td, clo, buf, 1); \
     return; \
 } else {\
     continue;\
 } \
}

#define return_direct1(td, _fn,a1) { \
 char top; \
 object buf[1]; buf[0] = a1; \
 if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \
     mclosure0(c1, (function_type) _fn); \
     GC(td, &c1, buf, 1); \
     return; \
 } else { \
     (_fn)(td, (closure)_fn, 1, buf); \
 }}

#define return_direct_with_clo1(td, clo, _fn,a1) { \
 char top; \
 object buf[1]; buf[0] = a1;\
 if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \
     GC(td, clo, buf, 1); \
     return; \
 } else { \
     (_fn)(td, (closure)(clo), 1, buf); \
 }}

#define closcall2(td, clo, buf) \
if (obj_is_not_closure(clo)) { \
   Cyc_apply(td, clo, 2, buf ); \
} else { \
   ((clo)->fn)(td, clo, 2, buf); \
;\
}
#define return_closcall2(td, clo,a1,a2) { \
 char top; \
 object buf[2]; buf[0] = a1;buf[1] = a2;\
 if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \
     GC(td, clo, buf, 2); \
     return; \
 } else {\
     closcall2(td, (closure) (clo), buf); \
     return;\
 } \
}

#define continue_or_gc2(td, clo,a1,a2) { \
 char *top = alloca(sizeof(char)); \
 if (stack_overflow(top, (((gc_thread_data *)data)->stack_limit))) { \
     object buf[2]; buf[0] = a1;buf[1] = a2;\
     GC(td, clo, buf, 2); \
     return; \
 } else {\
     continue;\
 } \
}

#define return_direct2(td, _fn,a1,a2) { \
 char top; \
 object buf[2]; buf[0] = a1;buf[1] = a2; \
 if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \
     mclosure0(c1, (function_type) _fn); \
     GC(td, &c1, buf, 2); \
     return; \
 } else { \
     (_fn)(td, (closure)_fn, 2, buf); \
 }}

#define return_direct_with_clo2(td, clo, _fn,a1,a2) { \
 char top; \
 object buf[2]; buf[0] = a1;buf[1] = a2;\
 if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \
     GC(td, clo, buf, 2); \
     return; \
 } else { \
     (_fn)(td, (closure)(clo), 2, buf); \
 }}

#include "cyclone/types.h"
object __glo_lib_91init_117schemelazy_scheme_lazy = NULL;
object __glo_make_91promise_scheme_lazy = NULL;
object __glo_delay_91force_scheme_lazy = NULL;
object __glo_delay_scheme_lazy = NULL;
object __glo_force_scheme_lazy = NULL;
object __glo_promise_127_scheme_lazy = NULL;
object __glo__85promise_91tag_85_scheme_lazy = NULL;
extern object __glo_member_scheme_base;
extern object __glo_assoc_scheme_base;
extern object __glo_cons_91source_scheme_base;
extern object __glo_syntax_91rules_scheme_base;
extern object __glo_letrec_85_scheme_base;
extern object __glo_guard_scheme_base;
extern object __glo_guard_91aux_scheme_base;
extern object __glo_define_91record_91type_scheme_base;
extern object __glo_record_127_scheme_base;
extern object __glo_is_91a_127_scheme_base;
extern object __glo_register_91simple_91type_scheme_base;
extern object __glo_make_91type_91predicate_scheme_base;
extern object __glo_make_91constructor_scheme_base;
extern object __glo_make_91constructor_95args_scheme_base;
extern object __glo_make_91getter_scheme_base;
extern object __glo_make_91setter_scheme_base;
extern object __glo_slot_91ref_scheme_base;
extern object __glo_slot_91set_67_scheme_base;
extern object __glo_type_91slot_91offset_scheme_base;
extern object __glo_make_91record_91marker_scheme_base;
extern object __glo_receive_scheme_base;
extern object __glo_abs_scheme_base;
extern object __glo_max_scheme_base;
extern object __glo_min_scheme_base;
extern object __glo_modulo_scheme_base;
extern object __glo_floor_91remainder_scheme_base;
extern object __glo_even_127_scheme_base;
extern object __glo_exact_91integer_127_scheme_base;
extern object __glo_exact_91integer_91sqrt_scheme_base;
extern object __glo_exact_127_scheme_base;
extern object __glo_inexact_127_scheme_base;
extern object __glo_odd_127_scheme_base;
extern object __glo_complex_127_scheme_base;
extern object __glo_rational_127_scheme_base;
extern object __glo_bignum_127_scheme_base;
extern object __glo_gcd_scheme_base;
extern object __glo_lcm_scheme_base;
extern object __glo_quotient_scheme_base;
extern object __glo_remainder_scheme_base;
extern object __glo_truncate_91quotient_scheme_base;
extern object __glo_truncate_91remainder_scheme_base;
extern object __glo_truncate_95_scheme_base;
extern object __glo_floor_91quotient_scheme_base;
extern object __glo_floor_91remainder_scheme_base;
extern object __glo_floor_95_scheme_base;
extern object __glo_square_scheme_base;
extern object __glo_expt_scheme_base;
extern object __glo_call_91with_91current_91continuation_scheme_base;
extern object __glo_call_95cc_scheme_base;
extern object __glo_call_91with_91values_scheme_base;
extern object __glo_dynamic_91wind_scheme_base;
extern object __glo_values_scheme_base;
extern object __glo_char_123_127_scheme_base;
extern object __glo_char_121_127_scheme_base;
extern object __glo_char_125_127_scheme_base;
extern object __glo_char_121_123_127_scheme_base;
extern object __glo_char_125_123_127_scheme_base;
extern object __glo_string_123_127_scheme_base;
extern object __glo_string_121_127_scheme_base;
extern object __glo_string_121_123_127_scheme_base;
extern object __glo_string_125_127_scheme_base;
extern object __glo_string_125_123_127_scheme_base;
extern object __glo_fast_91string_123_127_scheme_base;
extern object __glo_fast_91string_121_127_scheme_base;
extern object __glo_fast_91string_121_123_127_scheme_base;
extern object __glo_fast_91string_125_127_scheme_base;
extern object __glo_fast_91string_125_123_127_scheme_base;
extern object __glo_foldl_scheme_base;
extern object __glo_foldr_scheme_base;
extern object __glo_not_scheme_base;
extern object __glo_list_127_scheme_base;
extern object __glo_zero_127_scheme_base;
extern object __glo_positive_127_scheme_base;
extern object __glo_negative_127_scheme_base;
extern object __glo_append_scheme_base;
extern object __glo__list_scheme_base;
extern object __glo_make_91list_scheme_base;
extern object __glo_list_91copy_scheme_base;
extern object __glo_map_scheme_base;
extern object __glo_Cyc_91map_91loop_911_scheme_base;
extern object __glo_Cyc_91map_91loop_912_scheme_base;
extern object __glo_Cyc_91for_91each_91loop_911_scheme_base;
extern object __glo_Cyc_91for_91each_91loop_912_scheme_base;
extern object __glo_for_91each_scheme_base;
extern object __glo_list_91tail_scheme_base;
extern object __glo_list_91ref_scheme_base;
extern object __glo_list_91set_67_scheme_base;
extern object __glo_reverse_scheme_base;
extern object __glo_boolean_123_127_scheme_base;
extern object __glo_symbol_123_127_scheme_base;
extern object __glo_Cyc_91obj_123_127_scheme_base;
extern object __glo_vector_scheme_base;
extern object __glo_vector_91append_scheme_base;
extern object __glo_vector_91copy_scheme_base;
extern object __glo_vector_91copy_67_scheme_base;
extern object __glo_vector_91fill_67_scheme_base;
extern object __glo_vector_91_125list_scheme_base;
extern object __glo_vector_91_125string_scheme_base;
extern object __glo_vector_91map_scheme_base;
extern object __glo_vector_91for_91each_scheme_base;
extern object __glo_make_91string_scheme_base;
extern object __glo_string_scheme_base;
extern object __glo_string_91copy_scheme_base;
extern object __glo_string_91copy_67_scheme_base;
extern object __glo_string_91fill_67_scheme_base;
extern object __glo_string_91_125list_scheme_base;
extern object __glo_string_91_125vector_scheme_base;
extern object __glo_string_91map_scheme_base;
extern object __glo_string_91for_91each_scheme_base;
extern object __glo_make_91parameter_scheme_base;
extern object __glo_current_91output_91port_scheme_base;
extern object __glo_current_91input_91port_scheme_base;
extern object __glo_current_91error_91port_scheme_base;
extern object __glo_call_91with_91port_scheme_base;
extern object __glo_error_91object_127_scheme_base;
extern object __glo_error_91object_91message_scheme_base;
extern object __glo_error_91object_91irritants_scheme_base;
extern object __glo_error_95loc_scheme_base;
extern object __glo_error_scheme_base;
extern object __glo_raise_scheme_base;
extern object __glo_raise_91continuable_scheme_base;
extern object __glo_with_91handler_scheme_base;
extern object __glo_with_91exception_91handler_scheme_base;
extern object __glo_Cyc_91add_91exception_91handler_scheme_base;
extern object __glo_Cyc_91remove_91exception_91handler_scheme_base;
extern object __glo_newline_scheme_base;
extern object __glo_write_91char_scheme_base;
extern object __glo_write_91string_scheme_base;
extern object __glo_write_91string_911_scheme_base;
extern object __glo_write_91string_912_scheme_base;
extern object __glo_flush_91output_91port_scheme_base;
extern object __glo_char_91ready_127_scheme_base;
extern object __glo_peek_91char_scheme_base;
extern object __glo_read_91char_scheme_base;
extern object __glo_read_91line_scheme_base;
extern object __glo_read_91string_scheme_base;
extern object __glo_input_91port_127_scheme_base;
extern object __glo_output_91port_127_scheme_base;
extern object __glo_input_91port_91open_127_scheme_base;
extern object __glo_output_91port_91open_127_scheme_base;
extern object __glo_get_91output_91string_scheme_base;
extern object __glo_open_91output_91string_scheme_base;
extern object __glo_open_91input_91string_scheme_base;
extern object __glo_get_91output_91bytevector_scheme_base;
extern object __glo_open_91input_91bytevector_scheme_base;
extern object __glo_open_91output_91bytevector_scheme_base;
extern object __glo_features_scheme_base;
extern object __glo_Cyc_91add_91feature_67_scheme_base;
extern object __glo_Cyc_91version_scheme_base;
extern object __glo_any_scheme_base;
extern object __glo_every_scheme_base;
extern object __glo_and_scheme_base;
extern object __glo_or_scheme_base;
extern object __glo_let_scheme_base;
extern object __glo_let_85_scheme_base;
extern object __glo_letrec_scheme_base;
extern object __glo_let_85_91values_scheme_base;
extern object __glo_let_91values_scheme_base;
extern object __glo_define_91values_scheme_base;
extern object __glo_begin_scheme_base;
extern object __glo__case_scheme_base;
extern object __glo_cond_scheme_base;
extern object __glo_cond_91expand_scheme_base;
extern object __glo__do_scheme_base;
extern object __glo_when_scheme_base;
extern object __glo_unless_scheme_base;
extern object __glo_quasiquote_scheme_base;
extern object __glo_floor_scheme_base;
extern object __glo_ceiling_scheme_base;
extern object __glo_truncate_scheme_base;
extern object __glo_round_scheme_base;
extern object __glo_exact_scheme_base;
extern object __glo_inexact_scheme_base;
extern object __glo_eof_91object_scheme_base;
extern object __glo__void_scheme_base;
extern object __glo_syntax_91error_scheme_base;
extern object __glo_bytevector_91copy_scheme_base;
extern object __glo_bytevector_91copy_67_scheme_base;
extern object __glo_utf8_91_125string_scheme_base;
extern object __glo_string_91_125utf8_scheme_base;
extern object __glo_denominator_scheme_base;
extern object __glo_numerator_scheme_base;
extern object __glo_parameterize_scheme_base;
extern object __glo_read_91bytevector_scheme_base;
extern object __glo_read_91bytevector_67_scheme_base;
extern object __glo_write_91bytevector_scheme_base;
extern object __glo_peek_91u8_scheme_base;
extern object __glo_read_91u8_scheme_base;
extern object __glo_write_91u8_scheme_base;
extern object __glo_binary_91port_127_scheme_base;
extern object __glo_textual_91port_127_scheme_base;
extern object __glo_rationalize_scheme_base;
extern object __glo_fast_91string_123_127_191_191inline_191_191_scheme_base;
extern object __glo_fast_91string_121_127_191_191inline_191_191_scheme_base;
extern object __glo_fast_91string_121_123_127_191_191inline_191_191_scheme_base;
extern object __glo_fast_91string_125_127_191_191inline_191_191_scheme_base;
extern object __glo_fast_91string_125_123_127_191_191inline_191_191_scheme_base;
extern object __glo__75write_91bytevector_191_191inline_191_191_scheme_base;
extern object __glo_not_191_191inline_191_191_scheme_base;
extern object __glo_list_127_191_191inline_191_191_scheme_base;
extern object __glo_zero_127_191_191inline_191_191_scheme_base;
extern object __glo_positive_127_191_191inline_191_191_scheme_base;
extern object __glo_negative_127_191_191inline_191_191_scheme_base;
extern object __glo_floor_191_191inline_191_191_scheme_base;
extern object __glo_ceiling_191_191inline_191_191_scheme_base;
extern object __glo_truncate_191_191inline_191_191_scheme_base;
extern object __glo_round_191_191inline_191_191_scheme_base;
extern object __glo_exact_191_191inline_191_191_scheme_base;
extern object __glo_inexact_191_191inline_191_191_scheme_base;
extern object __glo_sqrt_191_191inline_191_191_scheme_base;
extern object __glo_exact_91integer_127_191_191inline_191_191_scheme_base;
extern object __glo_exact_127_191_191inline_191_191_scheme_base;
extern object __glo_complex_127_191_191inline_191_191_scheme_base;
extern object __glo_fixnum_127_191_191inline_191_191_scheme_base;
extern object __glo_quotient_191_191inline_191_191_scheme_base;
extern object __glo_square_191_191inline_191_191_scheme_base;
extern object __glo_eof_91object_191_191inline_191_191_scheme_base;
extern object __glo_void_191_191inline_191_191_scheme_base;
extern object __glo_make_91record_91marker_191_191inline_191_191_scheme_base;
#include "cyclone/runtime.h"
defsymbol(promise);
defsymbol(_85promise_91tag_85);
defsymbol(lambda);
defsymbol(make_91promise);
static void __lambda_16(void *data, object clo, int argc, object *args) ;/*closure _,object k_7384*/
static void __lambda_7(void *data, object clo, int argc, object *args) ;/*closure _,object k_7373, object obj_7316_7328*/
static void __lambda_8(void *data, object clo, int argc, object *args) ;/*object self_7389, object r_7374*/
static void __lambda_9(void *data, object clo, int argc, object *args) ;/*object self_7390, object result_91ready_127_7317_7329, object result_7318_7330*/
static void __lambda_18(void *data, object clo, int argc, object *args) ;/*object self_7391, object result_91ready_127_7317_7329*/
static void __lambda_17(void *data, object clo, int argc, object *args) ;/*object self_7392, object result_7318_7330*/
static void __lambda_11(void *data, object clo, int argc, object *args) ;/*object self_7393, object k_7376*/
static void __lambda_13(void *data, object clo, int argc, object *args) ;/*object self_7394, object x_7319_7331*/
static void __lambda_14(void *data, object clo, int argc, object *args) ;/*object self_7395, object r_7378*/
static void __lambda_15(void *data, object clo, int argc, object *args) ;/*object self_7396, object r_7379*/
static void __lambda_12(void *data, object clo, int argc, object *args) ;/*object self_7397, object k_7380*/
static void __lambda_10(void *data, object clo, int argc, object *args) ;/*object self_7398, object r_7375*/
static void __lambda_6(void *data, object clo, int argc, object *args) ;/*closure _,object k_7360, object expr_7310_7325, object rename_7311_7326, object compare_7312_7327*/
static void __lambda_5(void *data, object clo, int argc, object *args) ;/*closure _,object k_7347, object expr_734_7322, object rename_735_7323, object compare_736_7324*/
static void __lambda_2(void *data, object clo, int argc, object *args) ;/*closure _,object k_7341, object obj_733_7321*/
static void __lambda_3(void *data, object clo, int argc, object *args) ;/*object self_7387, object r_7342*/
static void __lambda_4(void *data, object clo, int argc, object *args) ;/*object self_7388, object r_7343*/
static void __lambda_1(void *data, object clo, int argc, object *args) ;/*closure _,object k_7336, object obj_731_7320*/

static void __lambda_16(void *data, object _, int argc, object *args) /* closure _,object k_7384 */
 {
object k_7384 = args[0];
  Cyc_st_add(data, "scheme/lazy.sld:lib-init:schemelazy");

make_pair(c_73243,quote_promise,NULL);c_73243.hdr.immutable = 1;

object c_73242 = global_set_cps_id(data,  k_7384,"__glo__85promise_91tag_85_scheme_lazy", __glo__85promise_91tag_85_scheme_lazy, &c_73243);
return_direct_with_clo1(data,  k_7384, (((closure)  k_7384)->fn),  c_73242);; 
}

static void __lambda_7(void *data, object _, int argc, object *args) /* closure _,object k_7373, object obj_7316_7328 */
 {
object k_7373 = args[0]; object obj_7316_7328 = args[1];
  Cyc_st_add(data, "scheme/lazy.sld:make-promise");

closureN_type c_73163;
object e_73237 [2];
c_73163.hdr.mark = gc_color_red;
 c_73163.hdr.grayed = 0;
c_73163.tag = closureN_tag;
 c_73163.fn = (function_type)__lambda_8;
c_73163.num_args = 1;
c_73163.num_elements = 2;
c_73163.elements = (object *)e_73237;
c_73163.elements[0] = k_7373;
c_73163.elements[1] = obj_7316_7328;

return_direct_with_clo2(data,  __glo_promise_127_scheme_lazy, (((closure)  __glo_promise_127_scheme_lazy)->fn),  &c_73163, obj_7316_7328);; 
}

static void __lambda_8(void *data, object self_7389, int argc, object *args) /* object self_7389, object r_7374 */
 {
 object r_7374 = args[0];
  if( (boolean_f != r_7374) ){ 
  return_direct_with_clo1(data,  ((closureN)self_7389)->elements[0], (((closure)  ((closureN)self_7389)->elements[0])->fn),  ((closureN)self_7389)->elements[1]);
} else { 
  
closureN_type c_73168;
object e_73236 [2];
c_73168.hdr.mark = gc_color_red;
 c_73168.hdr.grayed = 0;
c_73168.tag = closureN_tag;
 c_73168.fn = (function_type)__lambda_9;
c_73168.num_args = 2;
c_73168.num_elements = 2;
c_73168.elements = (object *)e_73236;
c_73168.elements[0] = ((closureN)self_7389)->elements[0];
c_73168.elements[1] = ((closureN)self_7389)->elements[1];

return_direct_with_clo2(data,(closure)&c_73168,__lambda_9,  boolean_f, boolean_f);}
;; 
}

static void __lambda_9(void *data, object self_7390, int argc, object *args) /* object self_7390, object result_91ready_127_7317_7329, object result_7318_7330 */
 {
 object result_91ready_127_7317_7329 = args[0]; object result_7318_7330 = args[1];
  
closureN_type c_73170;
object e_73232 [3];
c_73170.hdr.mark = gc_color_red;
 c_73170.hdr.grayed = 0;
c_73170.tag = closureN_tag;
 c_73170.fn = (function_type)__lambda_18;
c_73170.num_args = 1;
c_73170.num_elements = 3;
c_73170.elements = (object *)e_73232;
c_73170.elements[0] = ((closureN)self_7390)->elements[0];
c_73170.elements[1] = ((closureN)self_7390)->elements[1];
c_73170.elements[2] = result_7318_7330;


pair_type local_73235; 
return_direct_with_clo1(data,(closure)&c_73170,__lambda_18,  set_cell_as_expr(&local_73235, result_91ready_127_7317_7329));; 
}

static void __lambda_18(void *data, object self_7391, int argc, object *args) /* object self_7391, object result_91ready_127_7317_7329 */
 {
 object result_91ready_127_7317_7329 = args[0];
  
closureN_type c_73172;
object e_73227 [3];
c_73172.hdr.mark = gc_color_red;
 c_73172.hdr.grayed = 0;
c_73172.tag = closureN_tag;
 c_73172.fn = (function_type)__lambda_17;
c_73172.num_args = 1;
c_73172.num_elements = 3;
c_73172.elements = (object *)e_73227;
c_73172.elements[0] = ((closureN)self_7391)->elements[0];
c_73172.elements[1] = ((closureN)self_7391)->elements[1];
c_73172.elements[2] = result_91ready_127_7317_7329;


pair_type local_73230; 
return_direct_with_clo1(data,(closure)&c_73172,__lambda_17,  set_cell_as_expr(&local_73230, ((closureN)self_7391)->elements[2]));; 
}

static void __lambda_17(void *data, object self_7392, int argc, object *args) /* object self_7392, object result_7318_7330 */
 {
 object result_7318_7330 = args[0];
  
closureN_type c_73174;
object e_73180 [1];
c_73174.hdr.mark = gc_color_red;
 c_73174.hdr.grayed = 0;
c_73174.tag = closureN_tag;
 c_73174.fn = (function_type)__lambda_10;
c_73174.num_args = 1;
c_73174.num_elements = 1;
c_73174.elements = (object *)e_73180;
c_73174.elements[0] = ((closureN)self_7392)->elements[0];


closureN_type c_73181;
object e_73226 [3];
c_73181.hdr.mark = gc_color_red;
 c_73181.hdr.grayed = 0;
c_73181.tag = closureN_tag;
 c_73181.fn = (function_type)__lambda_11;
c_73181.num_args = 0;
c_73181.num_elements = 3;
c_73181.elements = (object *)e_73226;
c_73181.elements[0] = ((closureN)self_7392)->elements[1];
c_73181.elements[1] = result_7318_7330;
c_73181.elements[2] = ((closureN)self_7392)->elements[2];

return_direct_with_clo1(data,(closure)&c_73174,__lambda_10,  &c_73181);; 
}

static void __lambda_11(void *data, object self_7393, int argc, object *args) /* object self_7393, object k_7376 */
 {
 object k_7376 = args[0];
    
if( (boolean_f != car(((closureN)self_7393)->elements[2])) ){ 
  

return_direct_with_clo1(data,  k_7376, (((closure)  k_7376)->fn),  car(((closureN)self_7393)->elements[1]));
} else { 
  
closureN_type c_73190;
object e_73198 [1];
c_73190.hdr.mark = gc_color_red;
 c_73190.hdr.grayed = 0;
c_73190.tag = closureN_tag;
 c_73190.fn = (function_type)__lambda_12;
c_73190.num_args = 0;
c_73190.num_elements = 1;
c_73190.elements = (object *)e_73198;
c_73190.elements[0] = ((closureN)self_7393)->elements[0];


closureN_type c_73199;
object e_73225 [3];
c_73199.hdr.mark = gc_color_red;
 c_73199.hdr.grayed = 0;
c_73199.tag = closureN_tag;
 c_73199.fn = (function_type)__lambda_13;
c_73199.num_args = 1;
c_73199.num_elements = 3;
c_73199.elements = (object *)e_73225;
c_73199.elements[0] = k_7376;
c_73199.elements[1] = ((closureN)self_7393)->elements[1];
c_73199.elements[2] = ((closureN)self_7393)->elements[2];

return_direct_with_clo1(data,(closure)&c_73190,__lambda_12,  &c_73199);}
;; 
}

static void __lambda_13(void *data, object self_7394, int argc, object *args) /* object self_7394, object x_7319_7331 */
 {
 object x_7319_7331 = args[0];
    
if( (boolean_f != car(((closureN)self_7394)->elements[2])) ){ 
  

return_direct_with_clo1(data,  ((closureN)self_7394)->elements[0], (((closure)  ((closureN)self_7394)->elements[0])->fn),  car(((closureN)self_7394)->elements[1]));
} else { 
  
closureN_type c_73209;
object e_73221 [3];
c_73209.hdr.mark = gc_color_red;
 c_73209.hdr.grayed = 0;
c_73209.tag = closureN_tag;
 c_73209.fn = (function_type)__lambda_14;
c_73209.num_args = 1;
c_73209.num_elements = 3;
c_73209.elements = (object *)e_73221;
c_73209.elements[0] = ((closureN)self_7394)->elements[0];
c_73209.elements[1] = ((closureN)self_7394)->elements[1];
c_73209.elements[2] = ((closureN)self_7394)->elements[2];



return_direct_with_clo1(data,(closure)&c_73209,__lambda_14,  Cyc_set_cell(data, ((closureN)self_7394)->elements[1], x_7319_7331));}
;; 
}

static void __lambda_14(void *data, object self_7395, int argc, object *args) /* object self_7395, object r_7378 */
 {

  
closureN_type c_73211;
object e_73217 [2];
c_73211.hdr.mark = gc_color_red;
 c_73211.hdr.grayed = 0;
c_73211.tag = closureN_tag;
 c_73211.fn = (function_type)__lambda_15;
c_73211.num_args = 1;
c_73211.num_elements = 2;
c_73211.elements = (object *)e_73217;
c_73211.elements[0] = ((closureN)self_7395)->elements[0];
c_73211.elements[1] = ((closureN)self_7395)->elements[1];



return_direct_with_clo1(data,(closure)&c_73211,__lambda_15,  Cyc_set_cell(data, ((closureN)self_7395)->elements[2], boolean_t));; 
}

static void __lambda_15(void *data, object self_7396, int argc, object *args) /* object self_7396, object r_7379 */
 {

  

return_direct_with_clo1(data,  ((closureN)self_7396)->elements[0], (((closure)  ((closureN)self_7396)->elements[0])->fn),  car(((closureN)self_7396)->elements[1]));; 
}

static void __lambda_12(void *data, object self_7397, int argc, object *args) /* object self_7397, object k_7380 */
 {
 object k_7380 = args[0];
    
if( (boolean_f != Cyc_is_procedure(data, ((closureN)self_7397)->elements[0])) ){ 
  return_closcall1(data,  ((closureN)self_7397)->elements[0],  k_7380);
} else { 
  return_direct_with_clo1(data,  k_7380, (((closure)  k_7380)->fn),  ((closureN)self_7397)->elements[0]);}
;; 
}

static void __lambda_10(void *data, object self_7398, int argc, object *args) /* object self_7398, object r_7375 */
 {
 object r_7375 = args[0];
  
pair_type local_73179; 
return_direct_with_clo1(data,  ((closureN)self_7398)->elements[0], (((closure)  ((closureN)self_7398)->elements[0])->fn),  set_pair_as_expr(&local_73179, __glo__85promise_91tag_85_scheme_lazy, r_7375));; 
}

static void __lambda_6(void *data, object _, int argc, object *args) /* closure _,object k_7360, object expr_7310_7325, object rename_7311_7326, object compare_7312_7327 */
 {
object k_7360 = args[0]; object expr_7310_7325 = args[1];
  Cyc_st_add(data, "scheme/lazy.sld:delay-force");

pair_type local_73146; 

pair_type local_73149; 

pair_type local_73152; 

pair_type local_73155; 

pair_type local_73158; 


return_direct_with_clo1(data,  k_7360, (((closure)  k_7360)->fn),  set_pair_as_expr(&local_73146, quote_make_91promise, set_pair_as_expr(&local_73149, set_pair_as_expr(&local_73152, quote_lambda, set_pair_as_expr(&local_73155, NULL, set_pair_as_expr(&local_73158, Cyc_cadr(data, expr_7310_7325), NULL))), NULL)));; 
}

static void __lambda_5(void *data, object _, int argc, object *args) /* closure _,object k_7347, object expr_734_7322, object rename_735_7323, object compare_736_7324 */
 {
object k_7347 = args[0]; object expr_734_7322 = args[1];
  Cyc_st_add(data, "scheme/lazy.sld:delay");

pair_type local_73127; 

pair_type local_73130; 

pair_type local_73133; 

pair_type local_73136; 

pair_type local_73139; 


return_direct_with_clo1(data,  k_7347, (((closure)  k_7347)->fn),  set_pair_as_expr(&local_73127, quote_make_91promise, set_pair_as_expr(&local_73130, set_pair_as_expr(&local_73133, quote_lambda, set_pair_as_expr(&local_73136, NULL, set_pair_as_expr(&local_73139, Cyc_cadr(data, expr_734_7322), NULL))), NULL)));; 
}

static void __lambda_2(void *data, object _, int argc, object *args) /* closure _,object k_7341, object obj_733_7321 */
 {
object k_7341 = args[0]; object obj_733_7321 = args[1];
  Cyc_st_add(data, "scheme/lazy.sld:force");

closureN_type c_73110;
object e_73122 [2];
c_73110.hdr.mark = gc_color_red;
 c_73110.hdr.grayed = 0;
c_73110.tag = closureN_tag;
 c_73110.fn = (function_type)__lambda_3;
c_73110.num_args = 1;
c_73110.num_elements = 2;
c_73110.elements = (object *)e_73122;
c_73110.elements[0] = k_7341;
c_73110.elements[1] = obj_733_7321;

return_direct_with_clo2(data,  __glo_promise_127_scheme_lazy, (((closure)  __glo_promise_127_scheme_lazy)->fn),  &c_73110, obj_733_7321);; 
}

static void __lambda_3(void *data, object self_7387, int argc, object *args) /* object self_7387, object r_7342 */
 {
 object r_7342 = args[0];
  if( (boolean_f != r_7342) ){ 
  


closureN_type c_73115;
object e_73118 [1];
c_73115.hdr.mark = gc_color_red;
 c_73115.hdr.grayed = 0;
c_73115.tag = closureN_tag;
 c_73115.fn = (function_type)__lambda_4;
c_73115.num_args = 1;
c_73115.num_elements = 1;
c_73115.elements = (object *)e_73118;
c_73115.elements[0] = ((closureN)self_7387)->elements[0];

return_closcall1(data,  Cyc_cdr(data, ((closureN)self_7387)->elements[1]),  &c_73115);
} else { 
  return_direct_with_clo1(data,  ((closureN)self_7387)->elements[0], (((closure)  ((closureN)self_7387)->elements[0])->fn),  ((closureN)self_7387)->elements[1]);}
;; 
}

static void __lambda_4(void *data, object self_7388, int argc, object *args) /* object self_7388, object r_7343 */
 {
 object r_7343 = args[0];
  return_direct_with_clo2(data,  __glo_force_scheme_lazy, (((closure)  __glo_force_scheme_lazy)->fn),  ((closureN)self_7388)->elements[0], r_7343);; 
}

static void __lambda_1(void *data, object _, int argc, object *args) /* closure _,object k_7336, object obj_731_7320 */
 {
object k_7336 = args[0]; object obj_731_7320 = args[1];
  Cyc_st_add(data, "scheme/lazy.sld:promise?");
  
if( (boolean_f != Cyc_is_pair(obj_731_7320)) ){ 
  



return_direct_with_clo1(data,  k_7336, (((closure)  k_7336)->fn),  Cyc_eq(__glo__85promise_91tag_85_scheme_lazy, Cyc_car(data, obj_731_7320)));
} else { 
  return_direct_with_clo1(data,  k_7336, (((closure)  k_7336)->fn),  boolean_f);}
;; 
}

void c_schemelazy_inlinable_lambdas(void *data, object clo, int argc, object *args){ 
object buf[1]; object cont = args[0];
buf[0] = NULL; (((closure)cont)->fn)(data, cont, 1, buf);
 } 
void c_schemelazy_entry_pt_first_lambda(void *data, object clo, int argc, object *args){ 
Cyc_set_globals_changed((gc_thread_data *)data);
  quote_promise = find_or_add_symbol("promise");
  quote__85promise_91tag_85 = find_or_add_symbol("*promise-tag*");
  quote_lambda = find_or_add_symbol("lambda");
  quote_make_91promise = find_or_add_symbol("make-promise");

  add_global("__glo_lib_91init_117schemelazy_scheme_lazy", (object *) &__glo_lib_91init_117schemelazy_scheme_lazy);
  add_global("__glo_make_91promise_scheme_lazy", (object *) &__glo_make_91promise_scheme_lazy);
  add_global("__glo_delay_91force_scheme_lazy", (object *) &__glo_delay_91force_scheme_lazy);
  add_global("__glo_delay_scheme_lazy", (object *) &__glo_delay_scheme_lazy);
  add_global("__glo_force_scheme_lazy", (object *) &__glo_force_scheme_lazy);
  add_global("__glo_promise_127_scheme_lazy", (object *) &__glo_promise_127_scheme_lazy);
  add_global("__glo__85promise_91tag_85_scheme_lazy", (object *) &__glo__85promise_91tag_85_scheme_lazy);
  mclosure0(c_73238, (function_type)__lambda_16);c_73238.num_args = 0; 
  __glo_lib_91init_117schemelazy_scheme_lazy = &c_73238; 
  mclosure0(c_73161, (function_type)__lambda_7);c_73161.num_args = 1; 
  __glo_make_91promise_scheme_lazy = &c_73161; 
  mmacro(c_73142, (function_type)__lambda_6);c_73142.num_args = 3; 
  __glo_delay_91force_scheme_lazy = &c_73142; 
  mmacro(c_73123, (function_type)__lambda_5);c_73123.num_args = 3; 
  __glo_delay_scheme_lazy = &c_73123; 
  mclosure0(c_73108, (function_type)__lambda_2);c_73108.num_args = 1; 
  __glo_force_scheme_lazy = &c_73108; 
  mclosure0(c_7399, (function_type)__lambda_1);c_7399.num_args = 1; 
  __glo_promise_127_scheme_lazy = &c_7399; 
  __glo__85promise_91tag_85_scheme_lazy = boolean_f; 

  mclosure0(clo_73245, c_schemelazy_inlinable_lambdas); make_pair(pair_73244, find_or_add_symbol("c_schemelazy_inlinable_lambdas"), &clo_73245);
  make_cvar(cvar_73246, (object *)&__glo_lib_91init_117schemelazy_scheme_lazy);make_pair(pair_73247, find_or_add_symbol("lib-init:schemelazy"), &cvar_73246);
  make_cvar(cvar_73248, (object *)&__glo_make_91promise_scheme_lazy);make_pair(pair_73249, find_or_add_symbol("make-promise"), &cvar_73248);
  make_cvar(cvar_73250, (object *)&__glo_delay_91force_scheme_lazy);make_pair(pair_73251, find_or_add_symbol("delay-force"), &cvar_73250);
  make_cvar(cvar_73252, (object *)&__glo_delay_scheme_lazy);make_pair(pair_73253, find_or_add_symbol("delay"), &cvar_73252);
  make_cvar(cvar_73254, (object *)&__glo_force_scheme_lazy);make_pair(pair_73255, find_or_add_symbol("force"), &cvar_73254);
  make_cvar(cvar_73256, (object *)&__glo_promise_127_scheme_lazy);make_pair(pair_73257, find_or_add_symbol("promise?"), &cvar_73256);
  make_cvar(cvar_73258, (object *)&__glo__85promise_91tag_85_scheme_lazy);make_pair(pair_73259, find_or_add_symbol("*promise-tag*"), &cvar_73258);
make_pair(c_73267, &pair_73244,Cyc_global_variables);
make_pair(c_73266, &pair_73247, &c_73267);
make_pair(c_73265, &pair_73249, &c_73266);
make_pair(c_73264, &pair_73251, &c_73265);
make_pair(c_73263, &pair_73253, &c_73264);
make_pair(c_73262, &pair_73255, &c_73263);
make_pair(c_73261, &pair_73257, &c_73262);
make_pair(c_73260, &pair_73259, &c_73261);
Cyc_global_variables = &c_73260;
object buf[1]; buf[0] = ((closure1_type *)clo)->element;
(((closure)__glo_lib_91init_117schemelazy_scheme_lazy)->fn)(data, buf[0], 1, buf);
}
void c_schemelazy_entry_pt(void *data, object cont, int argc, object value){ 
  register_library("scheme_lazy");
  c_schemelazy_entry_pt_first_lambda(data, cont, argc, value);
}
