Rust has a lack of anonymous ADT (`enum`s). I would accept it but now came up with some ideas where abstraction over `enum`s would be needed. **NON-COMPLETE DRAFT**