Causality for free!: parametricity implies causality for functional reactive programs
types , abstraction and parametric polymorphism .