I think it offers the same functionality: you can create new types from any source you want. This includes everything from automatically parsing and loading database model files in your path to adding structural subtying as a library feature. It also integrates with the tooling, although I only ever used it from Emacs and so didn't see that myself.
The API for actually using the open type system was quite awkward and undocumented back when I used it, but it's probably improved by now.
My main language is probably Haskell or maybe OCaml. We don't have anything quite like that, but we can get quite far just with Template Haskell or Camlp4. E.g. I'm sure I could implement the regular expression example with a Template Haskell quasiquoter. Maybe not quite as slick, but certainly serviceable. I also don't know about tooling support because I'm still using Emacs for everything :P.
The API for actually using the open type system was quite awkward and undocumented back when I used it, but it's probably improved by now.
My main language is probably Haskell or maybe OCaml. We don't have anything quite like that, but we can get quite far just with Template Haskell or Camlp4. E.g. I'm sure I could implement the regular expression example with a Template Haskell quasiquoter. Maybe not quite as slick, but certainly serviceable. I also don't know about tooling support because I'm still using Emacs for everything :P.