What do you think of the idea of enums acquiring successor() and predecessor() functions and the ability to use them in Ranges?
enum Char { case A, B, C, D, E, F }
let a = Char.A
a.successor() // Char.B
(Char.A ... Char.D) // Range Char.A -> Char.D