Diferença entre hsc2hs e c2hs?

Qual é a diferença entre hsc2hs e c2hs?

Sei o que hsc2hs é um pré-processador, mas o que exatamente faz?

E o c2hs pode criar módulos Haskell a partir do código C, mas preciso do hsc2hs para iss