@@ -1,52 +1,21 @@
1−`$% buccen`
1+# `:book, $%, "buctis", {$book p/(list moss)}`
4−Tagged union.
3+Tagged union
6−Produces a [mold]() of a tagged union of a list of case pairs.
5+Product: a mold producing the tagged union of the molds in
6+`p`, all of which must be of the form `:bank(stem bulb)`, where
7+`stem` is an atomic mold.
8−Produces
9+Regular form: *running*.
11−A validator function that uses the value's [head]() as a tag to select a mold validate the tail of the value.
11+Examples:
14−-------
14+~zod:dojo> =a :book({$foo p/@ud q/@ud} {$bar p/@ud})
16−A list of cells of molds whose heads must be a [cube]().
16+~zod:dojo> (a [%bar 37])
18−Tall form
19+~zod:dojo> $:a
19−---------
20+[%foo p=0 q=0]~
28− ~zod/try=> $%([%& @p] [%| @t])
29− <1.dhe [* @n <246.qra 41.uuw 374.glo 100.rip 1.ypj %164>]>
30− ~zod/try=> *$%([%& @p] [%| @t])
32− ~zod/try=> :type; *$%([%& @p] [%| @t])
35− ~zod/try=> :type; *(each ,@p ,@t)
37− {[%.y p=@p] [%.n p=@t]}
38− ~zod/try=> $%(~ [%a 1])
39− ~ <syntax error at [1 13]>
40− ~zod/try=> $%([%~ ~] [%a 1])
41− <1.yck [* @n <246.qra 41.uuw 374.glo 100.rip 1.ypj %164>]>
42− ~zod/try=> *$%([%~ ~] [%a 1])
45− ++ foot $% [%ash p=twig] :: dry, geometric
46− [%elm p=twig] :: wet, generic
47− [%oak ~] :: XX not used
48− [%yew p=(map term foot)] :: XX not used
51−In `++foot`, `$%` creates a list of possible cases. That is, a `++foot`
52−can be either `%ash`, `%elm`, `%oak` or `%yew`.