Modify AST implementation to include span information instead of positions
The lexer (currybase/src/Curry.Syntax.Lexer) collects span information (i.e. a start and an end position) for all tokens during lexing. Currently this information is only used to produce a token stream with spans.
Afterwards the span information is discarded: The function span2Pos (Curry.Base.Span) is applied to convert spans into ordinary (starting) positions.
The AST implementation with positions should be modified to include span information in the long term. For this purpose the checks and transformations of the frontend implementation need to be adapted correspondingly.