type set_notation =
  [ `Set of USet.t
  | `Property of string
  | `Intr of set_notation * set_notation
  | `Union of set_notation * set_notation
  | `Diff of set_notation * set_notation
  | `Compl of set_notation ]

type tree =
  [ `Alt of tree * tree
  | `Seq of tree * tree
  | `Rep of tree
  | `Repn of tree * int * int option
  | `After of tree
  | `Before of tree
  | `Epsilon
  | `Group of tree
  | `OneChar
  | `String of UChar.t list
  | `Set of USet.t
  | `SetNotation of set_notation
  | `BoS
  | `EoS ]
