as I noted below in ```class EnsureListOf(EnsureValue):``` I wonder if we should try avoiding making copies of original container (e.g. list) 
moreover ```__iter__``` doesn't imply that it must be a list (as returned by map)