Use a sum-type for TimerCallback