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

    enable 'complement' tests in t/recurr.t (disabled in version 1.27)

    make better examples

    test new() with Date::ICal objects

    DONE: first() should work for recur_by_rule - use same algorithm as select()

    DONE: make first work with during() and other "intersections" - tests fail in t/recurr.t

    DONE: test recur_by_rule min

DTSTART

    a package global $DTSTART might be useful

WKST

    Test (api2.t): as method, global and as recur parameter.

EXCLUDE

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

RRULE

	DONE: should not backtrack if it can solve using COUNT

	where do "DUE" belong?

	TZ ?

        try to give min/max even if 'too_complex'

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', 'numeric'
		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 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

