Please see http://leventerkok.github.io/hArduino.
Control your Arduino board from Haskell, using the Firmata protocol