@@ -305,11 +305,42 @@ Regular: **2-fixed**.
306`[%bspd p=spec q=hoon]`: repair a value of a tagged union type
306`[%bspd p=spec q=hoon]`: repair a value of a tagged union type
309##### Syntax
308##### Syntax
311Regular: **2-fixed**.
310Regular: **2-fixed**.
313+$&(combined-mold=spec normalizing-gate=hoon)
315+Here `combined-mold` is a tagged union type (typically made with `$%`) and `normalizing-gate` is a
316+gate which accepts values of `combined-mold` and normalizes them to be of one particular type
321+The product of the normalizing gate and sample.
325+The default of the last type listed in `p`, normalized with the normalizing gate.
329+This rune is used to "upgrade" or "repair" values of a structure, typically from
330+an old version to a new version. For example, this may happen when migrating state after
338++$ combined $%(old new)
339++$ adapting $&(combined |=(?-(-.a %0 [%1 1 +.a], %1 a)))
341+Here `adapting` is a structure that bunts to `[%1 ^]` but also normalizes from
342+`[%0 @]` if called on such a noun.
314### $~ "bucsig"
345### $~ "bucsig"