Support for List and Map

have a mild preference for `name + "Key"` and `name + "Val"`, to be in line with `name + "Elem"` above. Or use `_elem` above. But feel free to ignore if you disagree.