rhine-1.5: Functional Reactive Programming with type-level clocks