We should have list.first() simply return null on an empty list instead of erroring.
Also:
Can ListRemove return the success state? Return 1 if successful, and 0 if the object was not found to be in the list.
Also:
Can ListRemove return the success state? Return 1 if successful, and 0 if the object was not found to be in the list.