Write a Blog >>
ICFP 2018
Sun 23 - Sat 29 September 2018 St. Louis, Missouri, United States
Thu 27 Sep 2018 13:30 - 14:00 at Illinois Central - Session 2 Chair(s): Sam Lindley

Processing data at different rates is generally a hard problem in reactive programming. Buffering problems, lags, and concurrency issues often occur. Many of these problems are \emph{clock errors}, where data at different rates is combined incorrectly. Techniques to avoid clock errors, such as type-level clocks and deterministic scheduling, exist in the field of synchronous programming, but are not implemented in general-purpose languages like Haskell.

Rhine is a \emph{clock-safe} library for synchronous and asynchronous Functional Reactive Programming (FRP). It separates the aspects of clocking, scheduling and resampling from each other, and ensures clock-safety at the type level. Concurrent communication is encapsulated safely. Diverse reactive subsystems can be combined in a coherent, declarative data-flow framework, while correct interoperability of data at different rates is guaranteed by type-level clocks. This provides a general-purpose framework that simplifies multi-rate FRP systems and can be used for game development, media applications, GUIs and embedded systems, through a flexible API with many reusable components.

Thu 27 Sep

haskellsymp-2018-papers
13:30 - 15:00: Haskell 2018 - Session 2 at Illinois Central
Chair(s): Sam LindleyUniversity of Edinburgh, UK
haskellsymp-2018-papers13:30 - 14:00
Talk
Manuel BärenzUniversity of Vienna, Austria, Ivan PerezNational Institute of Aerospace, USA
DOI
haskellsymp-2018-papers14:00 - 14:30
Talk
Dong HanBeijing Bytedance, China, Tao HeBeijing Bytedance, China
DOI
haskellsymp-2018-papers14:30 - 15:00
Talk
Kazutaka MatsudaTohoku University, Japan, Meng WangUniversity of Bristol, UK
DOI