This is a functional reactive programming library for interactive applications with the following features:
-
heavy focus on real-time applications like games and simulations,
-
very small core abstraction,
-
efficient in both time and space.
Until a proper tutorial has been written, please check out the examples directory. If you have questions, join #haskell-game on irc.freenode.net. If you would like to report a bug or request a feature, please file an issue.
The library is split into two roles: applications and controllers. An application developer models interactions and implements reactive systems, i.e. the application logic. A controller developer implements the glue between the application and the real world, i.e. how events and time-varying values map to actual things on the screen or in the network. The module structure reflects that distinction:
Control.Wire
: Application language (basically core + utils)Control.Wire.Controller
: Controller languageControl.Wire.Core
: Core application languageControl.Wire.Internal
: You should never need this moduleControl.Wire.Utils
: Extra application utilities
Modules not listed here are highly experimental and should not be used.
If you are asking yourself whether you are an application or a controller developer: at this early stage of development you are probably both, which means that you will write the application as well as connect its inputs and outputs to the real world.