I've done some diagrams, in order to check if you agree with the semantics of these SpanSet functions.
Some of these operations can be interpreted in more than one way. If you think something should be different, please let me know. This is the notation used: [aaa] - a closed spanset or span (aaa) - an open set [aaa) - semi-open set () - empty set dt - a datetime object --- > next( $dt ) given: [ aaaaaa bbbbbb ] ^dt returns: [bbbbbb] given: [ aaabbb ] ^dt returns: [aaabbb] could also be: (bbb] given: [ aaa ] ^dt returns: () --- > previous( $dt ) given: [ aaaaaa bbbbbb ] ^dt returns: [aaaaaa] given: [ aaabbb ] ^dt returns: [aaabbb] could also be: [aaa) given: [ aaa ] ^dt returns: () --- > current( $dt ) given: [ aaaaaa bbbbbb ] ^dt returns: [aaaaaa] given: [ aaabbb ] ^dt returns: [aaabbb] could also be: dt given: [ aaa ] ^dt returns: () given: [ aaa ] ^dt returns: [aaa] --- > closest( $dt ) given: [ aaaaaa bbbbbb ] ^dt returns: [aaaaaa] given: [ aaaaaa ] ^dt returns: [aaaaaa] could also be: dt --- > as_list given: [ aaaaaa bbbbbb ] returns: [aaaaaa],[bbbbbb] --- - Flavio S. Glock