A shallow embedding would typically use just functions - a famous
example is Paul Hudak's "region server". A deep embedding would build
syntax - represented with data types - and interpret the syntax or
compile the syntax for another use (so called "off-shoring" e.g. Conal
Elliott's Pan).


I am not able to ascertain  if what you are saying is consistent with  http://www.haskell.org/haskellwiki/Embedded_domain_specific_language 

Regards,
Kashyap