Purely functional lazy non-deterministic programming
Lava: Hardware Design in Haskell