Allow for multiple linker instances
Fixes the Haskell portion of #3372. Allows for multiple linker instances.
- commits are either individually buildable or squashed
commits have commit messages which describe what they do
(referring to Notes and tickets using
#NNNNsyntax when appropriate)
- have added source comments describing your change. For larger changes you likely should add a Note and cross-reference it from the relevant places.
- added a testcase to the testsuite.