As noted in #832 (comment)_, we are not very careful in how we deal with removing elements from VarInfo. delete! just doesn't work for TypedVarInfo, and subset is capable of creating TypedVarInfos where one of the sub-Metadatas is empty. We should fix delete! and test that empty Metadata objects are handled gracefully.