@hackage timeless0.9.0.1

An Arrow based Functional Reactive Programming library

Introduction

Timeless and Netwire

Timeless is a rewrite on the netwire-5.0.1 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.