Name starts uppercase; its parameters are single uppercase letters.
Each prototype declares a verb (lowercase) with no body. Prototypes may
mix the behavior’s parameters with concrete types
(Str render(T x, Int width);).
A function of your own with a verb’s name wins over the verb.
The types may be concrete (Task), partly concrete (Pair(Int)) or
generic (Pair(T)).
Each function must have its verb’s prototype with the behavior’s
parameters replaced by the instance’s types. A generic function fits
when it specializes to that signature.
A bundle names every verb exactly once.
Show cannot be given for numbers, Bool or Str, whose display is
fixed.
A behavior’s function is called where the behavior is used, so its
capabilities flow to the caller: a function that sorts with a comparator
needing process must itself be granted process (E0219). This includes
an instance that sort(xs) inserts implicitly, and instances reached
through a generic function’s copy: the concrete caller must hold them. A
copy of a generic declared in a sandbox stays under that ceiling.