!!
custom types
=/ a=(unit @) (some 5) ?=(^ a)

?= matches a value to a shape — here ^, a cell, so it is yes on a non-empty unit: the opposite of ?~.

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].

?= tests whether a value matches a shape, giving a loobean.

?=(^ [1 2]) is %.y.