Use syntax-ppss rather than face properties to detect when in a string
Propertize with 'font-lock-face, not 'face
Use syntax-ppss to detect when in a string or comment
Propertize haskell-show with 'font-lock-face, not 'face
Use cl-lib instead of cl.