It’s pretty cool, and pretty powerful what you can do with it. Should other languages adopt this approach? I think named types is better for building abstractions, but I haven’t come up with a good explanation yet.