packages feed

phino-0.0.154: test-resources/evaluate-packs/leaves-a-terminator-an-evaluate-line-meets-unfired.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# A branch that raises through a terminator of the entry is not fired by an
# 'evaluate' line, since no entry answers 'L_throw': the line leaves it as it
# is, and the join takes it as the branch that raises (#1874).
symbolic: |
  - Ξ»: L_fork
    dataize:
      𝛿1: $.ρ
    morph:
      𝑛1: $.a
      𝑛2: $.b
    evaluate:
      𝑛3: 𝑛1
      𝑛4: 𝑛2
    join:
      𝑛5: [𝑛3, 𝑛4]
    terminators: [L_throw]
    𝑛: 𝑛5
location: 'Q.y'
input: '⟦ y ↦ ⟦ ρ ↦ ⟦ Ξ” ‍ 01- ⟧, a ↦ ⟦ Ο† ↦ ⟦ Ξ» ‍ 𝜎1 ⟧ ⟧, b ↦ ⟦ Ξ» ‍ L_throw ⟧, Ξ» ‍ L_fork ⟧.Ο† ⟧'
result: '𝜎1:λ'
protocol: |
  𝕄(Ξ¦.y):
    𝔼(L_fork):
      𝔻(Ξ¦.a🌡0):
        𝛿·1Β·1 := 01-
      𝛿1Β·1 := 𝛿·1Β·1  # 𝔻(ΞΎ.ρ)
      𝑛1Β·1 := 𝜎1:Ξ»:Ο†  # 𝕄(ΞΎ.a)
      𝑛2Β·1 := L_throw:Ξ»  # 𝕄(ΞΎ.b)
      𝑛3Β·1 := 𝑛1Β·1  # 𝔼(𝑛1)
      𝑛4Β·1 := L_throw:Ξ»  # 𝔼(𝑛2)
      terminate(01-, right)  # 𝑛4
      𝑛5Β·1 := 𝑛3Β·1  # [𝑛3, 𝑛4]
      𝑛·1Β·1 := 𝑛5Β·1  # 𝑛
      𝑛·1Β·2 := 𝑛5Β·1  # 𝕄(𝑛·1Β·1)