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)) ```