A Graphical DSL in haskell