diff --git a/preserves-schema.md b/preserves-schema.md index 79b0bc9..48527b6 100644 --- a/preserves-schema.md +++ b/preserves-schema.md @@ -4,7 +4,7 @@ title: "Preserves Schema" --- Tony Garnock-Jones -December 2023. Version 0.3.5. +April 2024. Version 0.4. [abnf]: https://tools.ietf.org/html/rfc7405 [identifierlike]: #sufficiently-identifierlike-values @@ -415,6 +415,8 @@ entry. DictionaryPattern = "{" *(value ":" NamedSimplePattern) "}" +**Extensibility.** All of these compound patterns allow for extensibility in that they allow additional fields, elements, or dictionary entries, respectively. For example, the pattern `` will match not only `` but also ``, while rejecting `` or ``. Similarly, `{a: int, b: int}` matches `{a: 123, b: 234, c: [x y z]}` as well as `{a: 123, b: 234}`. Each compound pattern places constraints only on the *mentioned* elements of a datum, namely the leftmost fields of a record, the leftmost elements of a tuple, and the mentioned keys of a dictionary. Unmentioned elements are free to be present or absent. + ### Identifiers and Bindings: NamedPattern and NamedSimplePattern Compound patterns specifications contain `NamedPattern`s or