phino-0.0.162: test-resources/evaluate-packs/fires-a-formation-written-in-place-with-its-voids-filled.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The left side of the fork is a formation written in place, not an object of
# the world, with its void 'v' filled by an argument. The 'v' it binds after
# the copy is the void it showed before, not an attribute of its own, so the
# 'evaluate' line fires it as it fires a copy of an object of the world, and
# the join joins the two symbols (#2267).
symbolic: |
- Ī»: L_fork
dataize:
šæ1: $.onšµ
morph:
š1: $.leftšµ
š2: $.rightšµ
evaluate:
š3: š1
š4: š2
join:
'on': šæ1
left: š3
right: š4
otherwise: L_fork
- Ī»: L_box
š: ⦠λ ⤠š ā§
location: 'Q.y'
partial: true
input: >
⦠x ⦠⦠λ ⤠L_fork, onšµ ⦠š1:Ī», leftšµ ⦠⦠v ⦠ā
, Ī» ⤠L_box ā§( v ⦠š2:Ī» ), rightšµ ⦠š3:Ī» ā§,
y ⦠Φ.x.Ļ ā§
result: 'š5:Ī».Ļ'
protocol: |
š(Φ.y):
šĀ·0Ā·1 := ⦠v ⦠ā
, Ī» ⤠L_box ā§( v ⦠š2:Ī» )
šĀ·0Ā·2 := ⦠v ⦠š2:Ī», Ī» ⤠L_box ā§
remembered šĀ·0Ā·3 ┠Φ.x # ⦠λ ⤠L_fork, onšµ ⦠š1:Ī», leftšµ ⦠šĀ·0Ā·2, rightšµ ⦠š3:Ī» ā§
š¼(L_fork):
š»(ξ.onšµ):
šæĀ·1Ā·1 := š»(š1:Ī»)
šæ1Ā·1 := šæĀ·1Ā·1 # š»(ξ.onšµ)
š(ξ.leftšµ):
morphed šĀ·1Ā·1 := šĀ·0Ā·2
š1Ā·1 := šĀ·0Ā·2 # š(ξ.leftšµ)
š(ξ.rightšµ):
morphed šĀ·1Ā·2 := š3:Ī»
š2Ā·1 := šĀ·1Ā·2 # š(ξ.rightšµ)
š¼(L_box): # š¼(š1)
šĀ·2Ā·1 := š4:Ī» # š
š(šĀ·2Ā·1):
morphed šĀ·2Ā·2 := š4:Ī»
šĀ·2Ā·3 := šĀ·2Ā·2 # š(šĀ·2Ā·1)
š3Ā·1 := šĀ·2Ā·3 # š¼(š1)
joined š5 := šæ1Ā·1 ? š4 : š3
šĀ·1Ā·3 := š5:Ī»
unanswered š5 # š(š5:Ī»)