@EldritchConundrum nnnnot really? there's definitely some similarity, but ocaml's have more structure and can therefore express things that typescripts cannot
hmm by "more structure" I suppose you mean "mandatory wrapping". If what you want is always putting things inside a wrapper, polymorphic variants are best, but to me having the possibility of not wrapping is what sounds more expressive
(no wrapping: int | string wrapping: `Number of int | `Text of string)