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