'Returns the first recurrence after the given datetime instance. The
inc keyword defines what happens if dt is an occurrence. With
inc=True, if dt itself is an occurrence, it will be returned.'

def after(self, dt, inc=False):

    if self._cache_complete:
        gen = self._cache
    else:
        gen = self
    if inc:
        for i in gen:
            if (i >= dt):
                return i
    else:
        for i in gen:
            if (i > dt):
                return i
    return None
