phino-0.0.157: test-resources/evaluate-packs/parks-a-firing-whose-morph-operand-diverged.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The 'morph' of '$.a' fires an inner fork whose two sides, two different
# data, do not join. Under '--partial' the inner firing writes 'diverged' and
# the outer firing gets stuck right there, so the 'morph' of '$.b' and the
# outer join never run and the site of the outer fork is parked. Before #2014
# the outer join compared the unmorphed '$.a' with '$.b' and wrote a second
# 'diverged' that only echoed the first one.
symbolic: |
- Ξ»: L_fork
dataize:
πΏ1: $.c
morph:
π1: $.a
π2: $.b
join:
on: πΏ1
left: π1
right: π2
location: 'Q.y'
partial: true
input: 'β¦ y β¦ β¦ c β¦ β¦ Ξ» β€ π1 β§, a β¦ β¦ c β¦ β¦ Ξ» β€ π2 β§, a β¦ β¦ Ξ β€ 01- β§, b β¦ β¦ Ξ β€ 02- β§, Ξ» β€ L_fork β§.Ο, b β¦ β¦ Ξ β€ 05- β§, Ξ» β€ L_fork β§.Ο β§'
result: 'β¦ c β¦ β¦ Ξ» β€ π1 β§, a β¦ β¦ c β¦ β¦ Ξ» β€ π2 β§, a β¦ β¦ Ξ β€ 01- β§, b β¦ β¦ Ξ β€ 02- β§, Ξ» β€ L_fork β§.Ο, b β¦ β¦ Ξ β€ 05- β§, Ξ» β€ L_fork β§.Ο'
protocol: |
π(Ξ¦.y):
πΌ(L_fork):
πΏ1Β·1 := π»(π1:Ξ») # π»(ΞΎ.c)
π(Ξ¦.aπ΅1):
πΌ(L_fork):
πΏ1Β·2 := π»(π2:Ξ») # π»(ΞΎ.c)
π1Β·2 := 01-:Ξ # π(ΞΎ.a)
π2Β·2 := 02-:Ξ # π(ΞΎ.b)
diverged π1Β·2 vs π2Β·2 # they differ at .Ξ, and the join names no otherwise
stuck L_fork