Sourcetype 'a visitor = {leaf : string option -> string -> 'a;switch : string option -> Yojson.Basic.t list -> 'a;compose : string option -> Yojson.Basic.t list -> 'a;union : string option -> Yojson.Basic.t list -> 'a;apply : string option -> Yojson.Basic.t -> Yojson.Basic.t -> 'a;nonrel : string option -> Yojson.Basic.t -> 'a;product : string option -> Yojson.Basic.t list -> string list -> 'a;
} Sourceval get_semantic : (string * Yojson__Basic.t) list -> string option Sourceval visit_domain : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_seq : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_switch : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_compose : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_apply : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_nonrel : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_union : 'a visitor -> (string * Yojson__Basic.t) list -> 'a Sourceval visit_product : 'a visitor -> (string * Yojson__Basic.t) list -> 'a