SafeList is a wrapper class for the normal R list. It should behave
identically, except for the $ operator being overridden to require exact
matches.
Details
The constructor works identical to list() unless:
The only argument is a list, in which case the result is the same list, with its class attribute updated to include 'SafeList', or
The only argument is a SafeList, in which case that argument is returned unchanged