Maybe I should delve again into GADTs in OCaml, before having a second look.
GATs are generic type aliases which are defined inside traits.
GADTs are generic sum types with extra constraints on which variants may be used with which type arguments.
There is no reasonable way in which they are "quite similar," nor do either of them have anything at all to do with affine types.
Maybe I should delve again into GADTs in OCaml, before having a second look.