Another possibility (which I mentioned initially when we discussed this in IRC) is to use a 2-dimensional UB-Tree index. This would be the most efficient way, both in speed and in size (only a single index is required).
(class +Proj +Macropisobj) ... (rel sDate (+UB +Aux +Ref +Date) (eDate)) (rel eDate (+Date)) Then a 'collect' would find the range directly: (collect 'sDate '+Proj (list Sdate Sdate) (list Edate Edate)) ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe