I went through a lot of trouble to make every identifier parsed in `tree-sitter-haskell` as accurate as possible (i.e. type variable identifier vs constructor identifier vs type class identifier). This enables us to keep those distinctions with assignment at the cost of adding more constructors.