c2hs

Diferencia entre hsc2hs y c2hs?

¿Cuál es la diferencia entre hsc2hs y c2hs? Sé lo que hsc2hs es un preprocesador, pero ¿qué hace exactamente? Y c2hs pueden hacer módulos Haskell a partir de C-code, pero ¿necesito hsc2hs para esto?