I may be holding it wrong, but at least some unicode symbols are not supported as syntax:
(haskell [0, 0] - [5, 52]
(top_splice [0, 0] - [5, 52]
(exp_infix [0, 0] - [5, 52]
(exp_apply [0, 0] - [1, 9]
(exp_name [0, 0] - [0, 19]
(variable [0, 0] - [0, 19]))
(ERROR [0, 20] - [1, 5]
(ERROR [0, 20] - [0, 23]))
(exp_name [1, 6] - [1, 7]
(variable [1, 6] - [1, 7]))
(exp_name [1, 8] - [1, 9]
(variable [1, 8] - [1, 9])))
(operator [1, 9] - [1, 10])
(exp_apply [2, 2] - [5, 52]
(exp_tuple [2, 2] - [2, 29]
(exp_apply [2, 3] - [2, 13]
(exp_name [2, 3] - [2, 11]
(constructor [2, 3] - [2, 11]))
(exp_name [2, 12] - [2, 13]
(variable [2, 12] - [2, 13])))
(comma [2, 13] - [2, 14])
(exp_apply [2, 15] - [2, 28]
(exp_name [2, 15] - [2, 26]
(constructor [2, 15] - [2, 26]))
(exp_name [2, 27] - [2, 28]
(variable [2, 27] - [2, 28]))))
(ERROR [2, 30] - [2, 33]
(ERROR [2, 30] - [2, 33]))
(exp_name [3, 2] - [3, 8]
(constructor [3, 2] - [3, 8]))
(ERROR [3, 9] - [3, 12]
(ERROR [3, 9] - [3, 12]))
(exp_name [4, 2] - [4, 3]
(variable [4, 2] - [4, 3]))
(ERROR [4, 4] - [4, 7]
(ERROR [4, 4] - [4, 7]))
(exp_name [5, 2] - [5, 8]
(constructor [5, 2] - [5, 8]))
(exp_parens [5, 9] - [5, 25]
(exp_apply [5, 10] - [5, 24]
(exp_name [5, 10] - [5, 22]
(constructor [5, 10] - [5, 22]))
(exp_name [5, 23] - [5, 24]
(variable [5, 23] - [5, 24]))))
(exp_name [5, 26] - [5, 27]
(variable [5, 26] - [5, 27]))
(exp_tuple [5, 28] - [5, 52]
(exp_list [5, 29] - [5, 39]
(exp_name [5, 30] - [5, 38]
(constructor [5, 30] - [5, 38])))
(comma [5, 39] - [5, 40])
(exp_name [5, 41] - [5, 51]
(constructor [5, 41] - [5, 51])))))))