Test GADTs and other OCaml-derived type and module features
GADTs, existentials, polymorphic record fields, constraint, private and indexed extensible types, destructive substitution and typed first-class modules had no behavioural tests. Part of #9074.