Swift-like enum selection

This has already been discussed in some threads: