Comp.Pattern_object
type t =
| Raw_identifier of {
location : Beluga_syntax.Syncom.Location.t;
identifier : Beluga_syntax.Syncom.Identifier.t;
prefixed : Stdlib.Bool.t;
}
| Raw_qualified_identifier of {
location : Beluga_syntax.Syncom.Location.t;
identifier : Beluga_syntax.Syncom.Qualified_identifier.t;
prefixed : Stdlib.Bool.t;
}
| Raw_box of {
location : Beluga_syntax.Syncom.Location.t;
pattern : Synprs__.Synprs_definition.Meta.Thing.t;
}
| Raw_tuple of {
location : Beluga_syntax.Syncom.Location.t;
elements : t Support.List2.t;
}
| Raw_application of {
location : Beluga_syntax.Syncom.Location.t;
patterns : t Support.List2.t;
}
| Raw_annotated of {
location : Beluga_syntax.Syncom.Location.t;
pattern : t;
typ : Sort_object.t;
}
| Raw_meta_annotated of {
location : Beluga_syntax.Syncom.Location.t;
parameter_identifier : Beluga_syntax.Syncom.Identifier.t Support.Option.t
* [ `Plain | `Hash | `Dollar ];
parameter_typ : Synprs__.Synprs_definition.Meta.Thing.t Support.Option.t;
pattern : t;
}
Raw_meta_annotated { paramter_identifier = Option.Some "x"; modifier; parameter_typ = Option.Some t; pattern; _ }
is the the pattern { x : t } pattern
.
It is a syntax error to omit the identifier or the type.
*)| Raw_wildcard of {
location : Beluga_syntax.Syncom.Location.t;
}