new Enum module with functions for handling unexpected enum values
changes to signature of all matchAttributed* functions to use explicit generic parameter for attribute type