Modal FRP for all: Functional reactive programming without space leaks in Haskell