* my comments on this: - the change is clearly going in the right direction and it will be a nice simplification - `MemoryMap.Name` should have a `__repr__` indicating that it's a subclass (this is for clarity purpose in reading the debug output) - empty tuple is OK (transparent windows are very useful, e.g. if you are converting bus width), but resource names must not be empty, and shall be checked in `add_resource` - ordering between integers and strings should be left to a linting pass or perhaps just be deferred to the BSP builder or its components - `MemoryMap.Name` is fine