     'beginCaptures':
       '1':
         'name': 'keyword.other.haskell'
-    'end': '\\b(where)\\b'
+    'end': '\\b(where)\\b|$'
     'endCaptures':
       '1':
         'name': 'keyword.other.haskell'

        'name': 'keyword.other.arrow.haskell'
      }
      {
        'match': '=>'
        'name': 'keyword.other.big-arrow.haskell'
      }
      {
        'match': '\\b(Int(eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(Error)?)\\b'
        'name': 'support.type.prelude.haskell'
      }

    'name': 'string.quoted.single.haskell'
  }
  {
    'begin': '^\\s*(?<fn>(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\']*|\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_"\']]+\\))(?:\\s*,\\s*\\g<fn>)?)\\s*(::|∷)'
    'beginCaptures':
      '1':
        'patterns': [
