haskell/haskell-mode — pull request #141 by scvalex (2013-05-06 21:37:50+00:00)
Title: Imprison free variables

If you run `make compile` now, you get a bunch of warnings like

In haskell-indentation-delete-char:
haskell-indentation.el:385:17:Warning: reference to free variable
`haskell-literate'

In haskell-indentation-indent-line:
haskell-indentation.el:336:34:Warning: assignment to free variable
`haskell-indent-last-position'

The changes here solve all the warnings like the above; this is a partial solution to issue #105.

Most of them were caused by using global variables declared in another file, but not `require`ing that file. Sometimes, due to cyclic import problems, I had to `defvar` the variables where they're used (`(defvar foo)` is generally harmless, since it doesn't actually bind `foo`, or erase its docstring).

There were also a few places where buffer-local variables were created, but were not declared at the top-level.

As for actual problems, there were a couple of functions in `haskell-sort-imports.el` that used global variables to pass parameters to each other, but that's about it.