Oui, A{}
correspond à toute valeur construite avec la méthode A
que le type ait été déclaré avec la syntaxe d'enregistrement ou non.
Les rapport linguistique précise
L'expression F {}, où F est un constructeur de données, est légale, que F ait été déclaré ou non avec la syntaxe d'enregistrement (à condition que F n'ait pas de champs stricts - voir le quatrième point ci-dessus) ; elle dénote F ⊥1 ⊥n, où n est l'arité de F.
Le "quatrième point" mentionné dans la parenthèse indique que la construction d'une valeur avec une syntaxe d'enregistrement qui omet un champ strict constitue une erreur statique.
Et dans la section correspondance des modèles L'une des règles de grammaire pour les motifs est la suivante
apat -> qcon { fpat1 , … , fpatk } (labeled pattern, k ≥ 0)
et la sémantique est donnée dans la sous-section sur la sémantique formelle du pattern-matching (3.17.3) comme suit
(o) case v of { K {} -> e ; _ -> e′ }
= case v of {
K _… _ -> e ; _ -> e′ }