Arduino programming in haskell using the Copilot stream DSL.
arduino-copilot contains the basic building blocks to program your Arduino Nano, Arduino Uno or compatible hardware using Haskell and Functional Reactive Programming (FRP).
arduino-copilot uses the Copilot stream DSL (domain-specific language) to generate an Arduino sketch, which can be loaded in the Arduino IDE and uploaded to the board. Other methods of deploying sketches to the Arduino, such as the Arduino-Makefile, can also be used with a sketch generated by arduino-copilot.
All the messy details are abstracted away, letting you focus on the desired behavior of the Arduino.
Copilot is a stream (i.e., infinite lists) domain-specific language (DSL) in Haskell that compiles into embedded C. Copilot contains an interpreter, multiple back-end compilers, and other verification tools. https://copilot-language.github.io/