zod etc have a `lazy` combinator that allows creating recursive validators. For example, given this TS type: ```ts type Node = { label: string; children: Node[]; }; ``` There is no way to define this with simple-runtypes