'Return a (value, source) pair for the first object found for
this view. This amounts to the first element returned by
`resolve`. If no values are available, a NotFoundError is
raised.'

def first(self):

    pairs = self.resolve()
    try:
        return iter_first(pairs)
    except ValueError:
        raise NotFoundError(u'{0}    not    found'.format(self.name))
