phino-0.0.157: test-resources/evaluate-packs/joins-two-sides-a-stay-brought-to-one-shape.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The left side reads the Ο of a copy, the way 'as-number' of EO reads its
# 'data', so π brings it to a number whose bytes carry the copy as an extra
# '( Ο β¦ β¦ β¦ β§ )' tail. The right side is a number made of no object and has
# no such tail. Both are numbers made of one symbol, yet the tail kept the
# join from making one term of them (#1967). A 'stay' line drops every Ο
# applied to a dispatch, which 'stay' or 'skip' of normalization drops anyway
# once the dispatch comes to a formation, so the two sides differ in their
# symbols alone. The join takes the metas the 'stay' lines bound as they are
# and makes one term of them with a fresh symbol.
# The protocol comments the line of 'π3', which dropped a tail, with
# 'stay(π1)', and the line of 'π4', which dropped nothing, with 'π2' alone.
symbolic: |
- Ξ»: L_fork
dataize:
πΏ1: $.c
morph:
π1: $.a
π2: $.b
stay:
π3: π1
π4: π2
join:
on: πΏ1
left: π3
right: π4
location: 'Q.y'
hide-rho: false
input: 'β¦ number β¦ β¦ Ο β¦ β
β§, bytes β¦ β¦ Ο β¦ β
β§, y β¦ β¦ c β¦ β¦ Ξ» β€ π3 β§, a β¦ β¦ Ο β¦ Ξ¦.number( Ο β¦ β¦ Ο β¦ Ξ¦.bytes( Ο β¦ β¦ Ξ» β€ π1 β§ ), x β¦ β
β§.Ο ) β§, b β¦ β¦ Ο β¦ Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ β¦ Ξ» β€ π2 β§ ) ) β§, Ξ» β€ L_fork β§.Ο β§'
result: 'Ξ¦.bytes( Ο β¦ π4:Ξ» ):Ο'
protocol: |
π(Ξ¦.y):
πΌ(L_fork):
πΏ1Β·1 := π»(π3:Ξ») # π»(ΞΎ.c)
π1Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π1:Ξ», Ο β¦ β¦ Ο β¦ Ξ¦.bytes( Ο β¦ π1:Ξ» ), x β¦ β
β§ ) ):Ο # π(ΞΎ.a)
π2Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π2:Ξ» ) ):Ο # π(ΞΎ.b)
π3Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π1:Ξ» ) ):Ο # stay(π1)
π4Β·1 := π2Β·1 # π2
joined π4 := πΏ1Β·1 ? π1 : π2
πΒ·1Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π4:Ξ» ) ):Ο # π3, π4
πΒ·0Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π4:Ξ» ) )