anchor.diff:  The _"sub-functions"_ used for selecting the clock has the same name as the clock to use, leading to the following _"sub-functions"_ for the different temporal instant types:
   
   |===
  -| *Type* 3+| *Clock*
  -|| `_transaction_` | `_statement_` | `_realtime_`
  -
  -| _DateTime_ | `datetime.transaction()` | `datetime.statement()` | `datetime.realtime()`
  -| _LocalDateTime_ | `localdatetime.transaction()` | `localdatetime.statement()` | `localdatetime.realtime()`
  -| _Date_ | `date.transaction()` | `date.statement()` | `date.realtime()`
  -| _Time_ | `time.transaction()` | `time.statement()` | `time.realtime()`
  -| _LocalTime_ | `localtime.transaction()` | `localtime.statement()` | `localtime.realtime()`
  +| *Type* 4+| *Clock*
  +|| _default_ | `_transaction_` | `_statement_` | `_realtime_`
  +
  +| _DateTime_ | `datetime()` | `datetime.transaction()` | `datetime.statement()` | `datetime.realtime()`
  +| _LocalDateTime_ | `localdatetime()` | `localdatetime.transaction()` | `localdatetime.statement()` | `localdatetime.realtime()`
  +| _Date_ | `date()` | `date.transaction()` | `date.statement()` | `date.realtime()`
  +| _Time_ | `time()` | `time.transaction()` | `time.statement()` | `time.realtime()`
  +| _LocalTime_ | `localtime()` | `localtime.transaction()` | `localtime.statement()` | `localtime.realtime()`
   |===
   
   Even the types that do not contain timezone information support supplying a timezone to the functions that retrieve the current time, in order to retrieve the current time in that timezone.
  
positive.code: 
  Since time is always stored in UTC, temporal instants can be trivially ordered without taking time zone into account.
  
  The standard way of specifying a time zone is by specifying the offset from UTC in hours and minutes.
  This is the format supported by ISO 8601, and thus the only format supported for entering times as a string.
  In order to use a named time zone, the explicit timezone parameter must be used.
  
  Cypher also supports named time zones using the https://www.iana.org/time-zones[IANA timezone database].
  When entering a time using a named time zone, the offset from UTC is computed from the rules in the timezone database in order to create a time instant in UTC and in order to verify that the named timezone represents an actual existing timezone.
  The named timezone is then simply stored with the instant and only used when the time is presented.
  This means that if the rules for the timezone change in the timezone database in between when the time was created and when the time is presented, for example if the daylight savings time rules for that area changes, the presented time could differ from the originally entered time in the local timezone, although the absolute time in UTC will remain the same.
  
negative.code: | `datetime.truncate('*millennium*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*millennium*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*millennium*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `date.truncate('millennium', datetime("2017-09-26T11:26:42+01"))` _yields_ `date("2000-01-01")`
  
  .3+| `century` +
  Select the temporal instant corresponding to the century of the given instant.
  | `datetime.truncate('*century*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*century*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*century*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `date.truncate('century', localdatetime("1986-02-28T23:21"))` _yields_ `date("1900-01-01")`
  
  .3+| `decade` +
  Select the temporal instant corresponding to the decade of the given instant.
  | `datetime.truncate('*decade*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*decade*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*decade*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `date.truncate('decade', date("1986-04-26"))` _yields_ `date("1980-01-01")`
  
  .3+| `year` +
  Select the temporal instant corresponding to the year of the given instant.
  | `datetime.truncate('*year*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*year*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*year*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `date.truncate('year', date("2015-08-21"))` _yields_ `date("2015-01-01")`
  
  .3+| `weekYear` +
  Select the temporal instant corresponding to the first day of the first week of the week-year of the given instant.
  | `datetime.truncate('*weekYear*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*weekYear*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*weekYear*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `date.truncate('weekYear', date("2015-08-21"))` _yields_ `date("2014-12-29")`
  
  .3+| `quarter` +
  Select the temporal instant corresponding to the quarter of the year of the given instant.
  | `datetime.truncate('*quarter*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*quarter*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*quarter*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `date.truncate('quarter', date("2018-06-28"))` _yields_ `date("2018-04-01")`
  
  .3+| `month` +
  Select the temporal instant corresponding to the month of the given instant.
  | `datetime.truncate('*month*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*month*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*month*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `localdatetime.truncate('month', date("2011-11-21"))` _yields_ `localdatetime("2011-11-01T00:00:00")`
  
  .3+| `week` +
  Select the temporal instant corresponding to the week of the given instant.
  | `datetime.truncate('*week*', _input_)` | _DateTime_, _LocalDateTime_^†^, _Date_^†^
  | `localdatetime.truncate('*week*', _input_)`, | _DateTime_, _LocalDateTime_, _Date_
  | `date.truncate('*week*', _input_)` | _DateTime_, _LocalDateTime_, _Date_
  3+| *Example:* `datetime.truncate('week', date("2014-12-30"))` _yields_ `datetime("2014-12-29T00:00:00+0200[Africa/Johannesburg]")` (if the default timezone is South African Standard Time)
  
  .5+| `day` +
  Select the temporal instant corresponding to the month of the given instant.
  