Examples in plain Elixir: - [Maybe](https://github.com/serokellcao/etypes/blob/master/lib/etypes/types.ex#L6) - [Phantom](https://github.com/serokellcao/etypes/blob/master/lib/phantom.ex#L10) Would be cool to do the same with `Either`/[`Result`](https://github.com/doma-engineering/cluster/blob/main/lib/uptight/result.ex#L14).