Catch erroneous (singleton) recursive definitions

We can't safely bypass the extra immediate reference check even when
only one definition is involved in the recursion.
Merge pull request #728 from dylex/master

Catch erroneous (singleton) recursive definitions
Merge branch 'master' of github.com:purescript/purescript
Revert "Catch erroneous (singleton) recursive definitions"

This reverts commit 2bd5dc46fa95bff3812f4d4e089617a53fefb186.
Remove STArray implementation.
Merge pull request #731 from purescript/starray

Remove STArray implementation
Merge branch 'master' of github.com:purescript/purescript
Optional main flag with zero or one arguments