@Override
    public <V> MatcherContext<V> getSubContext(final MatcherContext<V> context)
    {
        return context.getSubContext(this);
    }
@Override
    public <V> MatcherContext<V> getSubContext(final MatcherContext<V> context)
    {
        return context.getSubContext(this);
    }
@ Override public < V > MatcherContext < V > getSubContext ( final MatcherContext < V > context ) { return context . getSubContext ( this ) ; }
default implementation is to simply delegate to the context
default implementation is to simply delegate to the context