phino-0.0.157: test-resources/evaluate-packs/binds-a-copy-over-no-bare-symbol-as-it-is.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# A 'defer' line defers only a copy one of whose arguments reads to a bare
# symbol (#1892, #1933). Here 'Ξ¦.items.tail' reads to an object that knows
# its 'next', so the line binds the copy as it is and the answer carries the
# copy whole. No 'deferred' line is written and no symbol is minted for it.
symbolic: |
- Ξ»: L_hold
morph:
π1: $.b
defer:
π2: π1
π: β¦ Ο β¦ π2 β§
location: 'Q.y'
input: 'β¦ step(tup) β¦ β¦ Ο β¦ tup.next β§, items β¦ β¦ tail β¦ β¦ next β¦ β¦ Ο β¦ β¦ Ξ» β€ π1 β§ β§ β§ β§, y β¦ β¦ b β¦ Ξ¦.step( tup β¦ Ξ¦.items.tail ), Ξ» β€ L_hold β§.Ο β§'
result: 'β¦ tup β¦ Ξ¦.items.tail, Ο β¦ tup.next β§'
protocol: |
π(Ξ¦.y):
πΌ(L_hold):
π(Ξ¦.aπ΅0):
πΒ·1Β·1 := Ξ¦.step( tup β¦ Ξ¦.items.tail )
π1Β·1 := πΒ·1Β·1 # π(ΞΎ.b)
π2Β·1 := πΒ·1Β·1 # π1
πΒ·1Β·2 := πΒ·1Β·1:Ο # π
πΒ·1Β·3 := πΒ·1Β·1:Ο # π(πΒ·1Β·2)