         'name': 'keyword.other.arrow.haskell'
       }
       {
+        'match': '→'
+        'name': 'keyword.other.arrow.haskell'
+      }
+      {
         'match': '=>'
         'name': 'keyword.other.big-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': [

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