Points in time are represented by classes implementing the trait TimePoint.
Depending on the required granularity, there are different implementation of TimePoint, such as