2) You can attempt to work around date's performance issues by reimplementing parts of date and rational in order to speed things up.