!!
=/ a=(unit @) (some 5) ?~ a 0 u.a

?~ tests a unit.

if not ~, u.a is the value.

glossary

=/ pins a named value (a face) into the subject for the lines below it.

name=value optionally declares the type.

=/(a 3 (add a a)) is 6.

unit is the maybe type: either ~ or [~ value].

(unit @) holds an atom or nothing.

%: calls a gate with several arguments, gathering them into one sample.

%:(add 2 3) is 5.

irregular forms:

(gate a b c) is %:(gate a b c)

some wraps a value in a unit - [~ value].

(some 5) is [~ 5].

?~ branches on whether a value is ~ (null): first branch if it is, second if not.

=/(a=(unit @) ~ ?~(a 0 u.a)) is 0.