module Recursive:sig..end
Use this module for handling a (possibly recursive) structural descriptor
d. Call Recursive.create () (returning r) before building d. Build
d and use Recursive r in places where d should be put. Call
Recursive.update r d after building d.
Here is an example for type t = A | B of t:
let r = Recursive.create () in
let d = Structure (Sum [| [| Recursive r |] |]) in
Recursive.update r d
val create : unit -> Structural_descr.recursive
val update : Structural_descr.recursive -> Structural_descr.t -> unit