motivating example:

```
class Meow(lib.enum.Enum, shape=unsigned(2)):
    A = 0
    B = 1
    C = 2

sig = Signal(Meow)
await sim.set(Value.cast(sig), 3)
print(await sim.get(sig))
```