@TODO swap out Iterable for ISeq Also, this cannot return a Condition until we decide how we want to represent Conditions in a function that returns a Protocol'ed value -- let's handle that next, as we add Conditions
(&self, alter: protocols::IFn, args: Iterable)