phino-0.0.152: test-resources/evaluate-packs/parks-a-fork-whose-branches-do-not-join.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# Branches differing anywhere but in a symbol are not joined, and that is the
# whole rule: no fallback and no second alternative. Bringing two branches to
# one shape is the program's business rather than phino's, so a fork whose
# branches differ in structure gets stuck the way a Ξ» function no entry answers
# does and '--partial' parks the site instead of failing the run.
symbolic: |
- Ξ»: L_fork
morph:
π1: $.a
π2: $.b
join:
π3: [π1, π2]
π: π3
location: 'Q.y'
partial: true
input: 'β¦ y β¦ β¦ a β¦ β¦ l β¦ β¦ Ξ» β€ π1 β§ β§, b β¦ β¦ l β¦ β¦ Ξ» β€ π2 β§, x β¦ β¦β§ β§, Ξ» β€ L_fork β§.l β§'
result: 'β¦ a β¦ π1:Ξ»:l, b β¦ β¦ l β¦ π2:Ξ», x β¦ β¦β§ β§, Ξ» β€ L_fork β§.l'
protocol: |
π(Ξ¦.y):
πΌ(L_fork):
π1Β·1 := π1:Ξ»:l # π(ΞΎ.a)
π2Β·1 := β¦ l β¦ π2:Ξ», x β¦ β¦β§ β§ # π(ΞΎ.b)
stuck(L_fork)