@classmethod
def take_prefixed(cls, iterable, prefix):
    """
        Side effect: pop :arg`mapping` keys, starting with :arg`prefix`
        """
    attrs = {}
    for key in iterable.copy().keys():
        if key.startswith(prefix):
            attrs[key[len(prefix):]] = iterable.pop(key)
    return cls(attrs)
