////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL ARRAY
////////////////////////////////////////////////////////////////////////////////

start:
    goto end

lower_or_equal_array_step_0:
    say [] <= []
    goto end

lower_or_equal_array_step_1:
    say [] <= true
    goto end

lower_or_equal_array_step_2:
    say [] <= 1.0
    goto end

lower_or_equal_array_step_3:
    say [] <= 1
    goto end

lower_or_equal_array_step_4:
    say [] <= null
    goto end

lower_or_equal_array_step_5:
    say [] <= {}
    goto end

lower_or_equal_array_step_6:
    say [] <= "1"
    goto end

////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL BOOLEAN
////////////////////////////////////////////////////////////////////////////////

lower_or_equal_boolean_step_0:
    say true <= []
    goto end

lower_or_equal_boolean_step_1:
    say true <= true
    goto end

lower_or_equal_boolean_step_2:
    say true <= 1.0
    goto end

lower_or_equal_boolean_step_3:
    say true <= 1
    goto end

lower_or_equal_boolean_step_4:
    say true <= null
    goto end

lower_or_equal_boolean_step_5:
    say true <= {}
    goto end

lower_or_equal_boolean_step_6:
    say true <= "1"
    goto end

////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL FLOAT
////////////////////////////////////////////////////////////////////////////////

lower_or_equal_float_step_0:
    say 1.0 <= []
    goto end

lower_or_equal_float_step_1:
    say 1.0 <= true
    goto end

lower_or_equal_float_step_2:
    say 1.0 <= 1.0
    goto end

lower_or_equal_float_step_3:
    say 1.0 <= 1
    goto end

lower_or_equal_float_step_4:
    say 1.0 <= null
    goto end

lower_or_equal_float_step_5:
    say 1.0 <= {}
    goto end

lower_or_equal_float_step_6:
    say 1.0 <= "1"
    goto end

////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL INT
////////////////////////////////////////////////////////////////////////////////

lower_or_equal_int_step_0:
    say 1 <= []
    goto end

lower_or_equal_int_step_1:
    say 1 <= true
    goto end

lower_or_equal_int_step_2:
    say 1 <= 1.0
    goto end

lower_or_equal_int_step_3:
    say 1 <= 1
    goto end

lower_or_equal_int_step_4:
    say 1 <= null
    goto end

lower_or_equal_int_step_5:
    say 1 <= {}
    goto end

lower_or_equal_int_step_6:
    say 1 <= "1"
    goto end

////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL NULL
////////////////////////////////////////////////////////////////////////////////

lower_or_equal_null_step_0:
    say null <= []
    goto end

lower_or_equal_null_step_1:
    say null <= true
    goto end

lower_or_equal_null_step_2:
    say null <= 1.0
    goto end

lower_or_equal_null_step_3:
    say null <= 1
    goto end

lower_or_equal_null_step_4:
    say null <= null
    goto end

lower_or_equal_null_step_5:
    say null <= {}
    goto end

lower_or_equal_null_step_6:
    say null <= "1"
    goto end

////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL OBJECT
////////////////////////////////////////////////////////////////////////////////

lower_or_equal_object_step_0:
    say {} <= []
    goto end

lower_or_equal_object_step_1:
    say {} <= true
    goto end

lower_or_equal_object_step_2:
    say {} <= 1.0
    goto end

lower_or_equal_object_step_3:
    say {} <= 1
    goto end

lower_or_equal_object_step_4:
    say {} <= null
    goto end

lower_or_equal_object_step_5:
    say {} <= {}
    goto end

lower_or_equal_object_step_6:
    say {} <= "1"
    goto end

////////////////////////////////////////////////////////////////////////////////
/// LOWER OR EQUAL STRING
////////////////////////////////////////////////////////////////////////////////

lower_or_equal_string_step_0:
    say "1" <= []
    goto end

lower_or_equal_string_step_1:
    say "1" <= true
    goto end

lower_or_equal_string_step_2:
    say "1" <= 1.0
    goto end

lower_or_equal_string_step_3:
    say "1" <= 1
    goto end

lower_or_equal_string_step_4:
    say "1" <= null
    goto end

lower_or_equal_string_step_5:
    say "1" <= {}
    goto end

lower_or_equal_string_step_6:
    say "1" <= "1"
    goto end