Include: include/setup.vader

Execute (pulp parses success message):
  new
  file src/Main.purs
  let output = [
    \ '* Building project in /home/test/purescript/',
    \ '{"warnings":[],"errors":[]}',
    \ '* Build successful.',
    \ ]
  let result = neomake#makers#ft#purescript#pulp().process_output({'output': output})
  AssertEqual [], result
  bwipe

Execute (pulp parses error message):
  new
  file src/Main.purs
  let output = [
    \ '* Building project in /home/test/purescript/',
    \ '{"warnings":[],"errors":[{"position":{"startLine":4,"startColumn":1,"endLine":4,"endColumn":14},"message":"  Type variable a is undefined.\n\nwhile checking the kind of a -> a\nin value declaration foo\n","errorCode":"UndefinedTypeVariable","errorLink":"https://github.com/purescript/documentation/blob/master/errors/UndefinedTypeVariable.md","filename":"src/Other.purs","moduleName":"Other","suggestion":null}]}',
    \ 'Compiling Other',
    \ '* ERROR: Subcommand terminated with exit code 1',
    \ ]
  let result = neomake#makers#ft#purescript#pulp().process_output({'output': output})
  AssertEqual [{
    \ 'lnum': 4,
    \ 'filename': 'src/Other.purs',
    \ 'col': 1,
    \ 'length': 13,
    \ 'type': 'E',
    \ 'text': "UndefinedTypeVariable :   Type variable a is undefined.\n\nwhile checking the kind of a -> a\nin value declaration foo\n",
    \ }], result
  bwipe

Execute (pulp parses warning message):
  new
  file src/Main.purs
  let output = [
  \ '* Building project in /home/test/purescript',
  \ '{"warnings":[{"position":{"startLine":3,"startColumn":1,"endLine":3,"endColumn":40},"message":"  The import of module Prelude contains the following unused references:\n\n    unit\n    pure\n    bind\n\n  It could be replaced with:\n\n    import Prelude (Unit)\n","errorCode":"UnusedExplicitImport","errorLink":"https://github.com/purescript/documentation/blob/master/errors/UnusedExplicitImport.md","filename":"src/Main.purs","moduleName":"Main","suggestion":{"replacement":"import Prelude (Unit)\n","replaceRange":{"startLine":3,"startColumn":1,"endLine":3,"endColumn":40}}}],"errors":[]}',
  \ 'Compiling Main',
  \ '* Build successful',
  \ ]
  let result = neomake#makers#ft#purescript#pulp().process_output({'output': output})
  AssertEqual [{
    \ 'lnum': 3,
    \ 'filename': 'src/Main.purs',
    \ 'col': 1,
    \ 'type': 'W',
    \ 'length': 39,
    \ 'text': "UnusedExplicitImport :   The import of module Prelude contains the following unused references:\n\n    unit\n    pure\n    bind\n\n  It could be replaced with:\n\n    import Prelude (Unit)\n",
    \ }], result
  bwipe