@hackage timeless1.0.1.0

An Arrow based Functional Reactive Programming library

Introduction

Timeless and Netwire

Although the following paragraph is valid for the original fork, it no longer holds for timeless >= 1.0.0. After this version, the only common code between timeless and netwire is the typeclass part. I greatly simplified and purefied the entire Signal class, and hopefully make it much easier to reason about, while keeping all nice properties and syntax about Arrow.

`Timeless` is a rewrite on the [`netwire-5.0.1`](http://hub.darcs.net/ertes/netwire) library, intending to create a simpler interface for easy FRP(Functional Reactive Programming) construction. The core module, `FRP.Timeless.Signal`, `FRP.Timeless.Session`, and `FRP.Timeless.Run` are mostly taken from Netwire, except that the `Wire s e m a b` is simplified to `Signal s m a b`, and several instances (such as `Profuctor`) are stripped away (I have to admit that I don't understand them, so I don't add them until they are REALLY needed). Everything else will be rewritten from scratch, based on my other project, namely `timeless-RPG`, which tries to create a complete RPG game engine framework (For real, this time! Hopefully it will not be abandoned like... well, the python one, the SFML/C++ one, the Ruby one, the second SFML/C++ one, the python one again... you name it) based on SDL2.

The motivation to rewrite netwire as timeless is because netwire lacks proper documentation, and its 5.* version is quite incomplete comparing to 4.*. At the same time, it doesn't seem to be actively developed anymore, so I decide to write most if not all necessary things from scratch to gain a better understanding on, well, everything.

Please do not expect this library to finish before t → ∞. I can only hope that I will not abandon this project like the other ones that I did. I would really like to keep the repo private until I make it rock solid (so that I am less likely to lose motivation due to false satisfaction), but I fear that my hard drive may crash some time in the future (which it just did for my other computer), so I push the repo up now.

What is Timeless? (do a s/is/will be/g in your head, for now)

Timeless is an Arrow based Functional Reactive Programming framework which supports continuous-time semantics. Discrete time events are simulated by "impulse functions". It supports dynamic switching and inhibition. Signals include pure, stateful, and Kleisli functions, which should give a wide range of applications.

Tutorial

Read the FRP.Timeless.Tutorial module, which is written in Literate Haskell. It is a very detailed implementation example of a simple interactive program.