123456789101112131415161718192021222324252627open!ImportmoduletypeS=sigtypeasttypetvalcreate:ast->t(** location of the field declaration *)vallocation:t->location(** type of the field's contents *)valcore_type:t->core_type(** constructing a pattern to match all fields of the type *)valpattern:tlist->loc:location->patternlist->pattern(** constructing an expression filling in all fields of the type *)valexpression:tlist->loc:location->expressionlist->expressionendmoduletypeField_syntax=sigmoduletypeS=SmoduleTuple:Swithtypeast=core_typemoduleRecord:Swithtypeast=label_declarationend