2026-05-13 21:20 AEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000585mercuryBugpublic2026-05-12 17:11
Reporterwangp 
Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
StatusnewResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0000585: liveness bug involving TypeClassInfo
DescriptionThe compiler aborts when compiling the attached test case in a debug grade:

% mmc -s asm_fast.gc.debug -C tci_liveness_abort.m

The module contains two similar predicates which both cause aborts at different points. (Probably the root cause is the same for both.)

With --debug-liveness 0, the Kind = k3 branch of the test1 predicate shows in the "after deadness" stage:

      % context: file "tci_liveness_abort.m", line 106
      % goal id: 12
      % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
      % pre-births: TypeClassInfo_for_host_14, HostOb_21, TypeClassInfo_for_host_25
      % determinism: semidet
      V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
      % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
      % arg-mode 1 in = out
      % arg-mode 2 in = out
      % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
      % post-deaths: V_16

The TypeClassInfo_for_host_14 variable occurring in the pre-birth set looks suspicious.
TagsNo tags attached.
Attached Files
  • ? file icon tci_liveness_abort.m (11,099 bytes) 2026-05-12 17:10
  • txt file icon debug-liveness-pred-id-0.txt (49,982 bytes) 2026-05-12 17:11 -
    before requantify:
    % context: file "tci_liveness_abort.m", line 101
    % goal id: 1
    % nonlocals: Ob_5, Kind_6, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
    % determinism: det
    ( % cannot_fail switch on Kind_6
    % Kind_6 has functor k1/0
      % context: file "tci_liveness_abort.m", line 101
      % goal id: 4
      % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
      % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
      % vars with new insts: STATE_VARIABLE_List_12
      % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
    ;
    % Kind_6 has functor k2/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_13
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_13)
          % Ob_5 => tci_liveness_abort.object/1(V_13)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_13
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: HostOb_8, V_13, TypeClassInfo_for_host_14
          % determinism: semidet
          V_13 = tci_liveness_abort.host(TypeClassInfo_for_host_14, HostOb_8)
          % V_13 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_14, HostOb_8)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: HostOb_8, V_13, TypeClassInfo_for_host_14
        )
        % vars with new insts: Ob_5, HostOb_8, TypeClassInfo_for_host_14
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, HostOb_8, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeClassInfo_for_host_14
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_8, Item_10, TypeClassInfo_for_host_14
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_14, Ob_5, HostOb_8, Item_10)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5, Item_10
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_15
          % determinism: det
          TypeCtorInfo_15_15 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_15 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_15
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % determinism: det
          list.cons(TypeCtorInfo_15_15, Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_15
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    ;
    % Kind_6 has functor k3/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_16
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_16)
          % Ob_5 => tci_liveness_abort.object/1(V_16)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_16
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
          % determinism: semidet
          V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
          % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
        )
        % vars with new insts: Ob_5, HostOb_21, TypeClassInfo_for_host_25
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, HostOb_21, TypeClassInfo_for_host_25
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_25, Ob_5, HostOb_21, Value_17)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5
          ,
          % context: file "tci_liveness_abort.m", line 111
          % goal id: 15
          % nonlocals: Item_19
          % determinism: det
          Item_19 = tci_liveness_abort.null
          % Item_19 <= tci_liveness_abort.null/0
          % cons_id type_ctor: tci_liveness_abort.value/0
          % cell_is_unique
          % vars with new insts: Item_19
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_20
          % determinism: det
          TypeCtorInfo_15_20 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_20 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_20
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, Item_19, TypeCtorInfo_15_20
          % determinism: det
          list.cons(TypeCtorInfo_15_20, Item_19, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_20
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    )
    % vars with new insts: Ob_5, Kind_6, STATE_VARIABLE_List_12
    
    
    before liveness:
    % context: file "tci_liveness_abort.m", line 101
    % goal id: 1
    % nonlocals: Ob_5, Kind_6, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
    % determinism: det
    ( % cannot_fail switch on Kind_6
    % Kind_6 has functor k1/0
      % context: file "tci_liveness_abort.m", line 101
      % goal id: 4
      % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
      % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
      % vars with new insts: STATE_VARIABLE_List_12
      % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
    ;
    % Kind_6 has functor k2/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_13
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_13)
          % Ob_5 => tci_liveness_abort.object/1(V_13)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_13
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: HostOb_8, V_13, TypeClassInfo_for_host_14
          % determinism: semidet
          V_13 = tci_liveness_abort.host(TypeClassInfo_for_host_14, HostOb_8)
          % V_13 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_14, HostOb_8)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: HostOb_8, V_13, TypeClassInfo_for_host_14
        )
        % vars with new insts: Ob_5, HostOb_8, TypeClassInfo_for_host_14
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, HostOb_8, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeClassInfo_for_host_14
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_8, Item_10, TypeClassInfo_for_host_14
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_14, Ob_5, HostOb_8, Item_10)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5, Item_10
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_15
          % determinism: det
          TypeCtorInfo_15_15 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_15 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_15
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % determinism: det
          list.cons(TypeCtorInfo_15_15, Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_15
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    ;
    % Kind_6 has functor k3/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_16
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_16)
          % Ob_5 => tci_liveness_abort.object/1(V_16)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_16
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
          % determinism: semidet
          V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
          % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
        )
        % vars with new insts: Ob_5, HostOb_21, TypeClassInfo_for_host_25
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, HostOb_21, TypeClassInfo_for_host_25
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_25, Ob_5, HostOb_21, Value_17)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5
          ,
          % context: file "tci_liveness_abort.m", line 111
          % goal id: 15
          % nonlocals: Item_19
          % determinism: det
          Item_19 = tci_liveness_abort.null
          % Item_19 <= tci_liveness_abort.null/0
          % cons_id type_ctor: tci_liveness_abort.value/0
          % cell_is_unique
          % vars with new insts: Item_19
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_20
          % determinism: det
          TypeCtorInfo_15_20 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_20 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_20
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, Item_19, TypeCtorInfo_15_20
          % determinism: det
          list.cons(TypeCtorInfo_15_20, Item_19, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_20
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    )
    % vars with new insts: Ob_5, Kind_6, STATE_VARIABLE_List_12
    
    
    after liveness:
    % context: file "tci_liveness_abort.m", line 101
    % goal id: 1
    % nonlocals: Ob_5, Kind_6, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
    % determinism: det
    ( % cannot_fail switch on Kind_6
    % Kind_6 has functor k1/0
      % context: file "tci_liveness_abort.m", line 101
      % goal id: 4
      % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % pre-births: STATE_VARIABLE_List_12
      % determinism: det
      STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
      % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
      % vars with new insts: STATE_VARIABLE_List_12
      % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
    ;
    % Kind_6 has functor k2/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_13
          % pre-births: V_13
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_13)
          % Ob_5 => tci_liveness_abort.object/1(V_13)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_13
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: HostOb_8, V_13, TypeClassInfo_for_host_14
          % pre-births: HostOb_8, TypeClassInfo_for_host_14
          % determinism: semidet
          V_13 = tci_liveness_abort.host(TypeClassInfo_for_host_14, HostOb_8)
          % V_13 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_14, HostOb_8)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: HostOb_8, V_13, TypeClassInfo_for_host_14
        )
        % vars with new insts: Ob_5, HostOb_8, TypeClassInfo_for_host_14
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, HostOb_8, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeClassInfo_for_host_14
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_8, Item_10, TypeClassInfo_for_host_14
          % pre-births: Item_10
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_14, Ob_5, HostOb_8, Item_10)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5, Item_10
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_15
          % pre-births: TypeCtorInfo_15_15
          % determinism: det
          TypeCtorInfo_15_15 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_15 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_15
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_15, Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_15
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    ;
    % Kind_6 has functor k3/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_16
          % pre-births: V_16
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_16)
          % Ob_5 => tci_liveness_abort.object/1(V_16)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_16
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
          % pre-births: TypeClassInfo_for_host_14, HostOb_21, TypeClassInfo_for_host_25
          % determinism: semidet
          V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
          % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
        )
        % vars with new insts: Ob_5, HostOb_21, TypeClassInfo_for_host_25
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, HostOb_21, TypeClassInfo_for_host_25
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_25, Ob_5, HostOb_21, Value_17)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5
          ,
          % context: file "tci_liveness_abort.m", line 111
          % goal id: 15
          % nonlocals: Item_19
          % pre-births: Item_19
          % determinism: det
          Item_19 = tci_liveness_abort.null
          % Item_19 <= tci_liveness_abort.null/0
          % cons_id type_ctor: tci_liveness_abort.value/0
          % cell_is_unique
          % vars with new insts: Item_19
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_20
          % pre-births: TypeCtorInfo_15_20
          % determinism: det
          TypeCtorInfo_15_20 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_20 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_20
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, Item_19, TypeCtorInfo_15_20
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_20, Item_19, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_20
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    )
    % vars with new insts: Ob_5, Kind_6, STATE_VARIABLE_List_12
    
    
    after deadness:
    % context: file "tci_liveness_abort.m", line 101
    % goal id: 1
    % nonlocals: Ob_5, Kind_6, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
    % determinism: det
    ( % cannot_fail switch on Kind_6
    % Kind_6 has functor k1/0
      % context: file "tci_liveness_abort.m", line 101
      % goal id: 4
      % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % pre-deaths: Ob_5, Kind_6
      % pre-births: STATE_VARIABLE_List_12
      % determinism: det
      STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
      % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
      % vars with new insts: STATE_VARIABLE_List_12
      % post-deaths: STATE_VARIABLE_List_0_11
      % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
    ;
    % Kind_6 has functor k2/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % pre-deaths: Kind_6
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_13
          % pre-births: V_13
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_13)
          % Ob_5 => tci_liveness_abort.object/1(V_13)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_13
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: HostOb_8, V_13, TypeClassInfo_for_host_14
          % pre-births: HostOb_8, TypeClassInfo_for_host_14
          % determinism: semidet
          V_13 = tci_liveness_abort.host(TypeClassInfo_for_host_14, HostOb_8)
          % V_13 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_14, HostOb_8)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: HostOb_8, V_13, TypeClassInfo_for_host_14
          % post-deaths: V_13
        )
        % vars with new insts: Ob_5, HostOb_8, TypeClassInfo_for_host_14
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, HostOb_8, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeClassInfo_for_host_14
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_8, Item_10, TypeClassInfo_for_host_14
          % pre-births: Item_10
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_14, Ob_5, HostOb_8, Item_10)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5, Item_10
          % post-deaths: Ob_5, HostOb_8, TypeClassInfo_for_host_14
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_15
          % pre-births: TypeCtorInfo_15_15
          % determinism: det
          TypeCtorInfo_15_15 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_15 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_15
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_15, Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % post-deaths: Item_10, STATE_VARIABLE_List_0_11, TypeCtorInfo_15_15
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-deaths: Ob_5
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % post-deaths: STATE_VARIABLE_List_0_11
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    ;
    % Kind_6 has functor k3/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % pre-deaths: Kind_6
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_16
          % pre-births: V_16
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_16)
          % Ob_5 => tci_liveness_abort.object/1(V_16)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_16
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
          % pre-births: TypeClassInfo_for_host_14, HostOb_21, TypeClassInfo_for_host_25
          % determinism: semidet
          V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
          % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
          % post-deaths: V_16
        )
        % vars with new insts: Ob_5, HostOb_21, TypeClassInfo_for_host_25
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, HostOb_21, TypeClassInfo_for_host_25
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_25, Ob_5, HostOb_21, Value_17)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5
          % post-deaths: Ob_5, TypeClassInfo_for_host_14, HostOb_21, TypeClassInfo_for_host_25
          ,
          % context: file "tci_liveness_abort.m", line 111
          % goal id: 15
          % nonlocals: Item_19
          % pre-births: Item_19
          % determinism: det
          Item_19 = tci_liveness_abort.null
          % Item_19 <= tci_liveness_abort.null/0
          % cons_id type_ctor: tci_liveness_abort.value/0
          % cell_is_unique
          % vars with new insts: Item_19
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_20
          % pre-births: TypeCtorInfo_15_20
          % determinism: det
          TypeCtorInfo_15_20 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_20 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_20
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, Item_19, TypeCtorInfo_15_20
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_20, Item_19, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_20
          % post-deaths: STATE_VARIABLE_List_0_11, Item_19, TypeCtorInfo_15_20
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-deaths: Ob_5
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % post-deaths: STATE_VARIABLE_List_0_11
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    )
    % vars with new insts: Ob_5, Kind_6, STATE_VARIABLE_List_12
    
    
    after delay death:
    % context: file "tci_liveness_abort.m", line 101
    % goal id: 1
    % nonlocals: Ob_5, Kind_6, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
    % determinism: det
    ( % cannot_fail switch on Kind_6
    % Kind_6 has functor k1/0
      % context: file "tci_liveness_abort.m", line 101
      % goal id: 4
      % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % pre-births: STATE_VARIABLE_List_12
      % determinism: det
      STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
      % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
      % vars with new insts: STATE_VARIABLE_List_12
      % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
    ;
    % Kind_6 has functor k2/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_13
          % pre-births: V_13
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_13)
          % Ob_5 => tci_liveness_abort.object/1(V_13)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_13
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: HostOb_8, V_13, TypeClassInfo_for_host_14
          % pre-births: HostOb_8, TypeClassInfo_for_host_14
          % determinism: semidet
          V_13 = tci_liveness_abort.host(TypeClassInfo_for_host_14, HostOb_8)
          % V_13 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_14, HostOb_8)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: HostOb_8, V_13, TypeClassInfo_for_host_14
          % post-deaths: V_13
        )
        % vars with new insts: Ob_5, HostOb_8, TypeClassInfo_for_host_14
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, HostOb_8, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeClassInfo_for_host_14
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_8, Item_10, TypeClassInfo_for_host_14
          % pre-births: Item_10
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_14, Ob_5, HostOb_8, Item_10)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5, Item_10
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_15
          % pre-births: TypeCtorInfo_15_15
          % determinism: det
          TypeCtorInfo_15_15 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_15 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_15
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_15, Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_15
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
        % post-deaths: HostOb_8, Item_10, TypeClassInfo_for_host_14, TypeCtorInfo_15_15
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    ;
    % Kind_6 has functor k3/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_16
          % pre-births: V_16
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_16)
          % Ob_5 => tci_liveness_abort.object/1(V_16)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_16
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
          % pre-births: TypeClassInfo_for_host_14, HostOb_21, TypeClassInfo_for_host_25
          % determinism: semidet
          V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
          % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
          % post-deaths: V_16
        )
        % vars with new insts: Ob_5, HostOb_21, TypeClassInfo_for_host_25
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, HostOb_21, TypeClassInfo_for_host_25
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_25, Ob_5, HostOb_21, Value_17)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5
          ,
          % context: file "tci_liveness_abort.m", line 111
          % goal id: 15
          % nonlocals: Item_19
          % pre-births: Item_19
          % determinism: det
          Item_19 = tci_liveness_abort.null
          % Item_19 <= tci_liveness_abort.null/0
          % cons_id type_ctor: tci_liveness_abort.value/0
          % cell_is_unique
          % vars with new insts: Item_19
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_20
          % pre-births: TypeCtorInfo_15_20
          % determinism: det
          TypeCtorInfo_15_20 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_20 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_20
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, Item_19, TypeCtorInfo_15_20
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_20, Item_19, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_20
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
        % post-deaths: TypeClassInfo_for_host_14, Item_19, TypeCtorInfo_15_20, HostOb_21, TypeClassInfo_for_host_25
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    )
    % vars with new insts: Ob_5, Kind_6, STATE_VARIABLE_List_12
    % post-deaths: Ob_5, Kind_6, STATE_VARIABLE_List_0_11
    
    
    after resume point:
    % context: file "tci_liveness_abort.m", line 101
    % goal id: 1
    % nonlocals: Ob_5, Kind_6, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
    % determinism: det
    ( % cannot_fail switch on Kind_6
    % Kind_6 has functor k1/0
      % context: file "tci_liveness_abort.m", line 101
      % goal id: 4
      % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % pre-births: STATE_VARIABLE_List_12
      % determinism: det
      STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
      % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
      % vars with new insts: STATE_VARIABLE_List_12
      % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
    ;
    % Kind_6 has functor k2/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_13
          % pre-births: V_13
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_13)
          % Ob_5 => tci_liveness_abort.object/1(V_13)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_13
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: HostOb_8, V_13, TypeClassInfo_for_host_14
          % pre-births: HostOb_8, TypeClassInfo_for_host_14
          % determinism: semidet
          V_13 = tci_liveness_abort.host(TypeClassInfo_for_host_14, HostOb_8)
          % V_13 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_14, HostOb_8)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: HostOb_8, V_13, TypeClassInfo_for_host_14
          % post-deaths: V_13
        )
        % vars with new insts: Ob_5, HostOb_8, TypeClassInfo_for_host_14
        % resume point orig only Ob_5, Kind_6, STATE_VARIABLE_List_0_11
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, HostOb_8, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeClassInfo_for_host_14
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_8, Item_10, TypeClassInfo_for_host_14
          % pre-births: Item_10
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_14, Ob_5, HostOb_8, Item_10)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5, Item_10
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_15
          % pre-births: TypeCtorInfo_15_15
          % determinism: det
          TypeCtorInfo_15_15 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_15 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_15
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, TypeCtorInfo_15_15
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_15, Item_10, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_15
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
        % post-deaths: HostOb_8, Item_10, TypeClassInfo_for_host_14, TypeCtorInfo_15_15
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    ;
    % Kind_6 has functor k3/0
      % context: file "tci_liveness_abort.m", line 106
      % goal id: 9
      % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
      % determinism: det
      ( if
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 10
        % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % determinism: semidet
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 11
          % nonlocals: Ob_5, V_16
          % pre-births: V_16
          % determinism: det
          Ob_5 = tci_liveness_abort.object(V_16)
          % Ob_5 => tci_liveness_abort.object/1(V_16)
          % arg-mode 1 in = out
          % vars with new insts: Ob_5, V_16
          ,
          % context: file "tci_liveness_abort.m", line 106
          % goal id: 12
          % nonlocals: V_16, HostOb_21, TypeClassInfo_for_host_25
          % pre-births: TypeClassInfo_for_host_14, HostOb_21, TypeClassInfo_for_host_25
          % determinism: semidet
          V_16 = tci_liveness_abort.host(TypeClassInfo_for_host_25, HostOb_21)
          % V_16 ?= tci_liveness_abort.host/1(TypeClassInfo_for_host_25, HostOb_21)
          % arg-mode 1 in = out
          % arg-mode 2 in = out
          % vars with new insts: V_16, HostOb_21, TypeClassInfo_for_host_25
          % post-deaths: V_16
        )
        % vars with new insts: Ob_5, HostOb_21, TypeClassInfo_for_host_25
        % resume point orig only Ob_5, Kind_6, STATE_VARIABLE_List_0_11
      then
        % context: file "tci_liveness_abort.m", line 107
        % goal id: 13
        % nonlocals: Ob_5, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, HostOb_21, TypeClassInfo_for_host_25
        % determinism: det
        ( % conjunction
          % context: file "tci_liveness_abort.m", line 107
          % goal id: 14
          % nonlocals: Ob_5, HostOb_21, TypeClassInfo_for_host_25
          % determinism: det
          tci_liveness_abort.get_value(TypeClassInfo_for_host_25, Ob_5, HostOb_21, Value_17)
          % pred id: 453, proc id: 0
          % vars with new insts: Ob_5
          ,
          % context: file "tci_liveness_abort.m", line 111
          % goal id: 15
          % nonlocals: Item_19
          % pre-births: Item_19
          % determinism: det
          Item_19 = tci_liveness_abort.null
          % Item_19 <= tci_liveness_abort.null/0
          % cons_id type_ctor: tci_liveness_abort.value/0
          % cell_is_unique
          % vars with new insts: Item_19
          ,
          % goal id: 22
          % nonlocals: TypeCtorInfo_15_20
          % pre-births: TypeCtorInfo_15_20
          % determinism: det
          TypeCtorInfo_15_20 = type_ctor_info(tci_liveness_abort, value, 0)
          % TypeCtorInfo_15_20 <= <type_ctor_info tci_liveness_abort.value/0>
          % cell_is_unique
          % vars with new insts: TypeCtorInfo_15_20
          ,
          % context: file "tci_liveness_abort.m", line 115
          % goal id: 23
          % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12, Item_19, TypeCtorInfo_15_20
          % pre-births: STATE_VARIABLE_List_12
          % determinism: det
          list.cons(TypeCtorInfo_15_20, Item_19, STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12)
          % pred id: 43, proc id: 0
          % vars with new insts: STATE_VARIABLE_List_12, TypeCtorInfo_15_20
        )
        % vars with new insts: Ob_5, STATE_VARIABLE_List_12
        % post-deaths: TypeClassInfo_for_host_14, Item_19, TypeCtorInfo_15_20, HostOb_21, TypeClassInfo_for_host_25
      else
        % context: file "tci_liveness_abort.m", line 106
        % goal id: 24
        % nonlocals: STATE_VARIABLE_List_0_11, STATE_VARIABLE_List_12
        % pre-births: STATE_VARIABLE_List_12
        % determinism: det
        STATE_VARIABLE_List_12 = STATE_VARIABLE_List_0_11
        % STATE_VARIABLE_List_12 := STATE_VARIABLE_List_0_11
        % vars with new insts: STATE_VARIABLE_List_12
        % Goal features: [feature_do_not_warn_singleton, feature_state_var_copy]
      )
      % vars with new insts: Ob_5, STATE_VARIABLE_List_12
    )
    % vars with new insts: Ob_5, Kind_6, STATE_VARIABLE_List_12
    % post-deaths: Ob_5, Kind_6, STATE_VARIABLE_List_0_11
    
    Uncaught Mercury exception:
    Software Error: map.lookup: key not found
    	Key Type: term.var(parse_tree.prog_data.prog_var_type)
    	Key Value: var(14)
    	Value Type: ll_backend.var_locn.var_state
    Stack dump follows:
       0       pred exception.throw/1-0 (erroneous) (exception.m:312)
       1       pred require.error/1-0 (erroneous) (require.m:173)
       2       pred require.report_lookup_error/3-0 (erroneous) (require.m:277)
       3       pred map.lookup/3-0 (det) (map.m:1463)
       4       pred ll_backend.var_locn.var_locn_produce_var_in_reg_or_stack/5-0 (det) (var_locn.m:1659)
       5       pred ll_backend.code_loc_dep.produce_variable_in_reg_or_stack/5-0 (det) (code_loc_dep.m:3196)
       6       pred ll_backend.trace_gen.trace_produce_var/9-0 (det) (trace_gen.m:1312)
       7    4* pred ll_backend.trace_gen.trace_produce_vars/11-0 (det) (trace_gen.m:1301 and others)
      11       pred ll_backend.trace_gen.generate_event_code/13-0 (det) (trace_gen.m:1148)
      12       pred ll_backend.trace_gen.maybe_generate_internal_event_code/7-0 (det) (trace_gen.m:912)
      13       pred ll_backend.ite_gen.generate_ite/10-0 (det) (ite_gen.m:216)
      14       pred ll_backend.code_gen.generate_goal_expr/9-0 (det) (code_gen.m:267)
      15       pred ll_backend.code_gen.generate_goal/7-0 (det) (code_gen.m:136)
      16    3* pred ll_backend.switch_gen.generate_if_then_else_chain_cases/15-0 (det) (switch_gen.m:622 and others)
      19       pred ll_backend.switch_gen.order_and_generate_cases/13-0 (det) (switch_gen.m:406)
      20       pred ll_backend.switch_gen.generate_int_switch/16-0 (det) (switch_gen.m:254)
      21       pred ll_backend.switch_gen.generate_switch/10-0 (det) (switch_gen.m:164)
      22       pred ll_backend.code_gen.generate_goal_expr/9-0 (det) (code_gen.m:271)
      23       pred ll_backend.code_gen.generate_goal/7-0 (det) (code_gen.m:136)
      24       pred ll_backend.proc_gen.generate_det_code/10-0 (det) (proc_gen.m:748)
      25       pred ll_backend.proc_gen.generate_category_code/11-0 (det) (proc_gen.m:696)
      26       pred ll_backend.proc_gen.generate_proc_code/10-0 (det) (proc_gen.m:428)
      27       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_for_proc/14-0 (det) (mercury_compile_llds_back_end.m:469)
      28       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_for_pred/13-0 (det) (mercury_compile_llds_back_end.m:373)
      29       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_by_preds_do_one_pred/14-0 (det) (mercury_compile_llds_back_end.m:338)
      30       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_by_preds_loop_over_preds/13-0 (det) (mercury_compile_llds_back_end.m:281)
      31       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_by_preds/8-0 (det) (mercury_compile_llds_back_end.m:260)
      32       pred top_level.mercury_compile_llds_back_end.hlds_to_llds/10-0 (det) (mercury_compile_llds_back_end.m:170)
      33       pred top_level.mercury_compile_augment.choose_and_execute_backend_passes/15-0 (det) (mercury_compile_augment.m:514)
      34       pred top_level.mercury_compile_augment.after_front_end_passes/14-0 (det) (mercury_compile_augment.m:412)
      35       pred top_level.mercury_compile_augment.process_augmented_module/16-0 (det) (mercury_compile_augment.m:283)
      36       pred top_level.mercury_compile_augment.augment_and_process_module/14-0 (det) (mercury_compile_augment.m:209)
      37       pred list.map_foldl3/9-0 (det) (list.m:4575)
      38       pred top_level.mercury_compile_augment.augment_and_process_all_submodules/15-0 (det) (mercury_compile_augment.m:158)
      39       pred top_level.mercury_compile_augment.augment_and_process_source_file/17-0 (det) (mercury_compile_augment.m:136)
      40       pred top_level.mercury_compile_main.read_augment_and_process_module/15-0 (det) (mercury_compile_main.m:1162)
      41       pred top_level.mercury_compile_main.do_process_compiler_arg/13-0 (det) (mercury_compile_main.m:800)
      42       pred top_level.mercury_compile_main.setup_and_process_compiler_arg/13-0 (det) (mercury_compile_main.m:676)
      43       pred top_level.mercury_compile_main.setup_and_process_compiler_cmd_line_args/15-0 (det) (mercury_compile_main.m:588)
      44       pred top_level.mercury_compile_main.do_op_mode_args/13-0 (det) (mercury_compile_main.m:423)
      45       pred top_level.mercury_compile_main.do_op_mode/11-0 (det) (mercury_compile_main.m:248)
      46       pred top_level.mercury_compile_main.main_after_setup/6-0 (det) (mercury_compile_main.m:203)
      47       pred top_level.mercury_compile_main.real_main/2-0 (det) (mercury_compile_main.m:124)
      48       pred mercury_compile.main/2-0 (det) (mercury_compile.m:32)
    
    txt file icon debug-liveness-pred-id-0.txt (49,982 bytes) 2026-05-12 17:11 +

-Relationships
+Relationships

-Notes
There are no notes attached to this issue.
+Notes

-Issue History
Date Modified Username Field Change
2026-05-12 17:10 wangp New Issue
2026-05-12 17:10 wangp File Added: tci_liveness_abort.m
2026-05-12 17:11 wangp File Added: debug-liveness-pred-id-0.txt
+Issue History