@Value.Lazy
    public Optional<RepositoryMirror> repository() {
      if (!declaringType().isPresent()) {
        return Optional.absent();
      }
      return kind().isIncluded() || kind().isDefinedValue()
          ? declaringType().get().repository()
          : Optional.<RepositoryMirror>absent();
    }
The class, which is annotated to be a {@code @Value.Immutable}, {@code @Value.Include} or
{@code @Value.Enclosing}.
@return declaring type
value-processor/src/org/immutables/value/processor/meta/Proto.java