It seems that the hyperindexformat in haskell.ind is generated. If I edit the file as you wrote and do make clean && make, the file is modified back to using \". 


On 2 July 2014 18:46, Richard A. O'Keefe <ok@cs.otago.ac.nz> wrote:

On 3/07/2014, at 8:14 AM, Christopher Done wrote:
>> (./haskell.ind (./index-intro.tex)
>> ! Argument of \OT1\" has an extra }.
>> <inserted text>
>>                \par
>> l.61   \item |hyperindexformat{\"}
>>                                  , 51, 73, 107, 112
>> ?
>
> Does anyone familiar with the language of LaTeX have any idea what's
> going on?

The \" command in TeX says "You see the next item?  Put
a diaeresis over it."  So it is expecting a plain character,
or possibly a command naming a character.  But } is an "active"
character with a special meaning.

The most likely explanation here is that \" should
*really* be \textquotedbl.  Apparently someone thought
\" in TeX was like \" in a C string, but it never has been.

If you can change that line from
        \item |hyperindexformat{\"}....
to      \item |hyperindexformat{\textquotdbl}....
the problem *might* go away.