A library for creating Deeply embedded DSLs in Haskell