Fix Haskell extraction for terms over 45 characters long
Fix Haskell extraction for terms over 45 characters long

The Haskell extraction code would allow line-wrapping of the Haskell
type definition, which would lead to unparseable Haskell code when the
linebreak occured just before the type name.  In particular, with a term
name of 46 characters or more, the following Coq code:

  Definition xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx := tt.
  Extraction Language Haskell.
  Extraction xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

would produce:

  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ::
  Unit
  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =
    Tt

which failed to compile with GHC (according to Haskell's indentation
rules, the "Unit" line must be indented to be treated as a continuation
of the previous line).

This patch always forces the type onto a separate line, and ensures that
it is always indented by 2 spaces (just like the body of each definition).

SkySkimmer/coq,william-lawvere/coq,maximedenes/coq,maximedenes/coq,JasonGross/coq,mattam82/coq,letouzey/coq-wip,ejgallego/coq,letouzey/coq-wip,maximedenes/coq,gares/coq,ppedrot/coq,Ptival/coq,silene/coq,coq/coq,SkySkimmer/coq,JasonGross/coq,SkySkimmer/coq,amintimany/coq,mattam82/coq,ppedrot/coq,gares/coq,letouzey/coq-wip,ejgallego/coq,letouzey/coq-wip,JasonGross/coq,Ptival/coq,SkySkimmer/coq,Lionel-Rieg/coq,Ptival/coq,coq/coq,gares/coq,ejgallego/coq,mattam82/coq,Zimmi48/coq,william-lawvere/coq,ppedrot/coq,gares/coq,Matafou/coq,coq/coq,gares/coq,Zimmi48/coq,coq/coq,maximedenes/coq,Matafou/coq,Matafou/coq,letouzey/coq-wip,Lionel-Rieg/coq,ppedrot/coq,Zimmi48/coq,silene/coq,Zimmi48/coq,maximedenes/coq,Lionel-Rieg/coq,JasonGross/coq,silene/coq,william-lawvere/coq,amintimany/coq,ejgallego/coq,amintimany/coq,ppedrot/coq