Hi,
Assume that a package A
imports a package B
as a dependency. B
defines a new operator, as well as its fixity.
Is it correct to assume that the fixity of the operator is ignored in A
when B
is imported as a data dependency?
Background :
the expression here fails to compile when daml-ctl is imported as a dependency, but works fine if it is a data-dependency.
daml-ctl defines
&&&
as infixr 3
<<<
as infixr 1
Thank you,
Matteo
akrmn
May 2, 2022, 2:17pm
2
Hi @Matteo_Limberto , thanks for bringing this up. Your assumption is correct, but shouldn’t be What’s happening is that .dar
s (currently) do not preserve fixity information, so when the compiler sees the operators it just assumes they are infixl 9
by default.
I’ve opened [Data Dependencies should preserve fixity information · Issue #13763 · digital-asset/daml · GitHub ] to track this. Please note that any fix to this will only work for newly produced .dar
files, so if your program relies on the fixity of operators defined in a data-dependency, this data-dependency will need to be recompiled into a .dar
that does have the fixity information.
2 Likes