packages feed

phino-0.0.162: test-resources/evaluate-packs/answers-bottom-for-a-meta-that-raises.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The entry 'L_wrap' morphs its operand 'x', a copy of 'throw', and then
# brings the meta it bound down to data. The λ function 'L_throw' is one of
# its 'terminators', and data that comes from something that raises is the
# same raise, so 'L_wrap' answers ⊥ and never fires 'L_throw' (#2330).
symbolic: |
  - λ: L_wrap
    terminators: [L_throw]
    morph:
      𝑛1: $.x
    dataize:
      𝛿1: 𝑛1
    𝑛: ⟦ λ ⤍ 𝜎 ⟧
location: 'Q.y'
input: '⟦ wrap(x) ↦ ⟦ λ ⤍ L_wrap ⟧, y ↦ Φ.wrap( ⟦ λ ⤍ L_throw ⟧ ).φ ⟧'
result: '⊥'
protocol: |
  𝕄(Φ.y):
    remembered 𝑛·0·1 ≡ Φ.wrap  # ⟦ x ↦ ∅, λ ⤍ L_wrap ⟧
    𝑛·0·2 := Φ.wrap( x ↦ L_throw:λ )
    𝑛·0·3 := ⟦ x ↦ L_throw:λ, λ ⤍ L_wrap ⟧
    remembered 𝑛·0·3 ≡ 𝑛·0·1( x ↦ L_throw:λ )
    𝔼(L_wrap):
      𝕄(ξ.x):
        morphed 𝑛·1·1 := L_throw:λ
      𝑛1·1 := L_throw:λ  # 𝕄(ξ.x)
      𝑛·1·2 := ⊥
    morphed 𝑛·0·4 := ⊥