@@ -185,10 +185,15 @@ parsePositionedToken = P.try $ do
185parseToken :: P.Parsec String u Token
185parseToken :: P.Parsec String u Token
186parseToken = P.choice
186parseToken = P.choice
187 [ P.try $ P.string "<-" *> P.notFollowedBy symbolChar *> pure LArrow
187 [ P.try $ P.string "<-" *> P.notFollowedBy symbolChar *> pure LArrow
188+ , P.try $ P.string "←" *> P.notFollowedBy symbolChar *> pure LArrow
188 , P.try $ P.string "<=" *> P.notFollowedBy symbolChar *> pure LFatArrow
189 , P.try $ P.string "<=" *> P.notFollowedBy symbolChar *> pure LFatArrow
190+ , P.try $ P.string "⇐" *> P.notFollowedBy symbolChar *> pure LFatArrow
189 , P.try $ P.string "->" *> P.notFollowedBy symbolChar *> pure RArrow
191 , P.try $ P.string "->" *> P.notFollowedBy symbolChar *> pure RArrow
192+ , P.try $ P.string "→" *> P.notFollowedBy symbolChar *> pure RArrow
190 , P.try $ P.string "=>" *> P.notFollowedBy symbolChar *> pure RFatArrow
193 , P.try $ P.string "=>" *> P.notFollowedBy symbolChar *> pure RFatArrow
194+ , P.try $ P.string "⇒" *> P.notFollowedBy symbolChar *> pure RFatArrow
191 , P.try $ P.string "::" *> P.notFollowedBy symbolChar *> pure DoubleColon
195 , P.try $ P.string "::" *> P.notFollowedBy symbolChar *> pure DoubleColon
196+ , P.try $ P.string "∷" *> P.notFollowedBy symbolChar *> pure DoubleColon
192 , P.try $ P.char '(' *> pure LParen
197 , P.try $ P.char '(' *> pure LParen
193 , P.try $ P.char ')' *> pure RParen
198 , P.try $ P.char ')' *> pure RParen
194 , P.try $ P.char '{' *> pure LBrace
199 , P.try $ P.char '{' *> pure LBrace
@@ -411,6 +416,7 @@ reserved :: String -> TokenParser ()
411reserved s = token go P.<?> show s
416reserved s = token go P.<?> show s
413 go (LName s') | s == s' = Just ()
418 go (LName s') | s == s' = Just ()
419+ go (Symbol s') | s == s' = Just ()
414 go _ = Nothing
420 go _ = Nothing
416uname :: TokenParser String
422uname :: TokenParser String