packages feed

phino-0.0.157: test-resources/evaluate-packs/parks-a-firing-whose-deferred-argument-got-stuck.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# A 'defer' line works out every argument of a copy that is no bare symbol
# before it writes the call. Here the argument 'x' fires 'L_outer', whose
# operand gets stuck on 'L_none'. Under '--partial' the firing of 'L_pair'
# gets stuck right there, so no 'deferred' line is written and the site of
# 'L_pair' is parked. Before #2014 the argument was kept as written and the
# entry went on as if it were worked out.
symbolic: |
  - Ξ»: L_outer
    dataize:
      𝛿1: ΞΎ.arg
    𝑛: ⟦ Ξ» ‍ 𝜎 ⟧
  - Ξ»: L_pair
    morph:
      𝑛1: $.c
    defer:
      𝑛2: 𝑛1
    𝑛: 𝑛2
location: 'Q.p'
partial: true
input: >
  ⟦ box ↦ ⟦ s ↦ βˆ…, x ↦ βˆ…, Ο† ↦ ΞΎ.s.next ⟧,
    p ↦ ⟦
      c ↦ Ξ¦.box( ⟦ Ξ» ‍ 𝜎1 ⟧, ⟦ arg ↦ ⟦ Ξ» ‍ L_none ⟧, Ξ» ‍ L_outer ⟧.Ο† ),
      Ξ» ‍ L_pair ⟧.Ο† ⟧
result: '⟦ c ↦ Ξ¦.box( ⟦ Ξ» ‍ 𝜎1 ⟧, ⟦ arg ↦ ⟦ Ξ» ‍ L_none ⟧, Ξ» ‍ L_outer ⟧.Ο† ), Ξ» ‍ L_pair ⟧.Ο†'
protocol: |
  𝕄(Ξ¦.p):
    𝔼(L_pair):
      𝕄(Ξ¦.a🌡0):
        𝑛·1Β·1 := Ξ¦.box( s ↦ 𝜎1:Ξ» )
        𝑛·1Β·2 := 𝑛·1Β·1( x ↦ ⟦ arg ↦ L_none:Ξ», Ξ» ‍ L_outer ⟧.Ο† )
      𝑛1Β·1 := 𝑛·1Β·2  # 𝕄(ΞΎ.c)
      𝕄(𝑛1.x):
        𝔼(L_outer):
          𝔻(Ξ¦.a🌡1):
            unanswered L_none  # 𝔻(L_none:Ξ»)
          stuck L_none
      stuck L_none