Custom operator
All atoms and actions by default includes pipe operator for simple extending and composing. You can create your own operators to improve your code and modularize it.
We assume that you already read core docs.
Prefix and types
Operator for the pipe function should starts with a verb.
If operator isn’t create a new atom and mutate the passed you should use with
prefix.
We use here T extends Atom
instead of much simpler <T>(length: string): (anAtom: Atom<T>) Atom<T> & {...}
to save all additional properties witch added by previous operators.