Closed FissoreD closed 3 weeks ago
The term: p :- (true, true), (true,true). produces the ast:
p :- (true, true), (true,true).
(app [const :-, const p, app [const ,, app [const ,, const true, const true], const true, const true]]),
Note that we have the subterm app [COMMA, app [COMMA, true, true], true, true] With this PR the compiler flattens the term and produces instead:
app [COMMA, app [COMMA, true, true], true, true]
(app [const :-, const p, app [const ,, const true, const true, const true, const true]),
The same subterm is now: app [COMMA, true, true, true, true]
app [COMMA, true, true, true, true]
The term:
p :- (true, true), (true,true).
produces the ast:Note that we have the subterm
app [COMMA, app [COMMA, true, true], true, true]
With this PR the compiler flattens the term and produces instead:The same subterm is now:
app [COMMA, true, true, true, true]