Structural_descr.RecursiveUse 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