@Nullable
    @SuppressWarnings("unchecked")
    public <E> E get(@Nonnull Tag<E> tag) {
        Object got = map.getOrDefault(tag, NONE);
        if (got == NONE) {
            throw new IllegalArgumentException("No value associated with " + tag);
        }
        return (E) got;
    }
@Test(expected = IllegalArgumentException.class)
    public void when_getNonexistent_then_exception() {
        ibt.get(tag1());
    }