Date-Set TODO 
(Some items apply to Set::Infinite)

DTSTART

    a package global $DTSTART might be useful

WKST

    only exists as global and as recur parameter. Make it an object variable like dtstart.

EXCLUDE

    exclude might have problems applying an unbounded recurrence to another unbounded recurrence

RRULE

	should not backtrack if it can solve the problem using COUNT

	where do "DUE" belong?

	TZ ?

SYNTAX

	'iterate' options 'no-sort', 'no-merge', 'keep-null' ...

	extra: wrappers (like: weekday('thursday') )
	some tough cases: yearweek(10) monthweek(2)
	-- partly done: ICalSet.pm

	'select' switch for negative-index overflow behaviour (end of subset, or end of freq)
	tests: add test for negative 'by'

	negative values in select should count backwards from end
	-- test! insert debug -- ical.pl 134 should show 2001-09-30

	remove 'interval' option from select

	old: correct syntax problems due to accepting ( [ 1 .. 10 ] ) as input - see POD.

	make 'freq' work with 'days', etc.

	extra: make offset accept ICal times

	extra: offset option "middle"

	extra: "indexes" filter to help dealing with sparse lists:
	(,,10,,12,,14,,,)->indexes gives (2,4,6)

	extra: Make a 'strict' option for "quantize" and other filters, 
	that will intersect
	each unit back to the object, that is:
	Interval:                     [************************]
	Quantized:                [*********)[*********)[*********)
	Quantized->Stricted:          [*****)[*********)[******]

	think about: "push-pop", "dup", "drop" mechanism

	think about: some "if-else" mechanism

TESTS

	test fractional seconds

DOCUMENTATION

    Move whatever is interesting in recur_by_rule() into event() docs.

	document:
		new method 'compact'
		offset option 'mode=>circle'
		iterate
		no_cleanup

	document '->trace({options})->' method

	document: quantize extensibility through hash-subs

    document: $FUTURE $PAST $FOREVER $NEVER


    POD TODO

    - more SYNOPSIS

    - more COOKBOOK

    - more INHERITED METHODS

    - as_years, next_year: explain this and give more examples, cookbook-style.

    - more 'OLD-API'

    - include the functions to check/set 'open-begin' and 'open-end' intervals

    - include internal methods

CACHEING

	make a 'flush'-cache method. Make a 'cache-registry'.

	think about: caching for union, etc  

	extra: caching for the filters. 

OTHER

	check for negative-epoch errors (quantize, select, offset).

	remove a lot of debug #-print lines

	internal: it may be good to have a pointer to the "root" object
	in the filters. They already have a "parent" pointer.

	oo: provide a general filter "install" mechanism (quantize, select, etc)
	check: cleanup "type" hack

	old: Make a global mode for `open_*' 

	old: Quantize_Date should care of daylight savings time
