When converting 1 - 2 into our internal representation, this is captured as the application of function - to two arguments 1 and 2 - i.e `App ("-", [`Int 1; `Int 2]); This is okay.
However, there are some small inconsistencies across the codebase. In particular, I think some parts of the pretty printer assume that binary operators are encoded with parenthesis - i.e as `App ("(-)", [`Int 1; `Int 2]), etc.
We should comb through all functions that operate over Lang.Expr.t and check that they make consistent assumptions about how binary operators are represented.
When converting
1 - 2into our internal representation, this is captured as the application of function-to two arguments1and2- i.e`App ("-", [`Int 1; `Int 2]); This is okay.However, there are some small inconsistencies across the codebase. In particular, I think some parts of the pretty printer assume that binary operators are encoded with parenthesis - i.e as
`App ("(-)", [`Int 1; `Int 2]), etc.We should comb through all functions that operate over Lang.Expr.t and check that they make consistent assumptions about how binary operators are represented.