On 24 November 2012 23:10, Ludovic Courtès <l...@gnu.org> wrote: >> Personally I am not 100% on this, but I attach it for comment anyway. >> I will not be able to work on it again for a short while. >> >> A quick solution may be to silently introduce just enough to fix the >> current bug, and worry about the extra predicates, uri-record-type vs. >> rfc-definition-of-uri, etc. later. > > I could come up with a ‘declare-relative-uri-header!’ that would use > (build-uri xxx #:validate? #f) as a quick fix. > > However, it seems to me that your patch is actually fine, and doesn’t > break compatibility, so I’d rather apply it directly. Did you have > other concerns?
The API seems less clean, and it is not immediately clear that uri? is not the top of the URI-like type hierarchy. The other functions only indicate “uri” in their name. I did not wish to introduce parallel “build-uri-reference”, etc. for each of these, and did consider adding #:reference? on some to select weaker validation. I think I prefer to keep the base type predicate as uri?, and use relative-ref? and absolute-uri? to distinguish. This would mean deviating from the RFC by: - permitting fragments in absolute-uri?; - not requiring a scheme in uri?; which are both forgivable. Maybe I am just too fussy!