Abstract syntax graphs for domain specific languages
Lava: Hardware Design in Haskell