agda2hs
agda2hs copied to clipboard
`agda2hs` fails unless `agda` or `agda2hs` is run first
The first execution of agda2hs
fails for this code:
$ find -type f -name \*.agdai -delete
$ agda2hs --local-interfaces --library-file=$AGDA_LIBS --compile-dir=peras-hs/src src/Peras/QCD/Node/Specification.agda
agda2hs --local-interfaces --library-file=$AGDA_LIBS --compile-dir=peras-hs/src src/Peras/QCD/Node/Specification.agda
Checking Peras.QCD.Node.Specification (/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Specification.agda).
Checking Peras.QCD.Crypto (/extra/iohk/peras-design.msd/src/Peras/QCD/Crypto.agda).
Checking Peras.QCD.Crypto.Placeholders (/extra/iohk/peras-design.msd/src/Peras/QCD/Crypto/Placeholders.agda).
Checking Peras.QCD.Types (/extra/iohk/peras-design.msd/src/Peras/QCD/Types.agda).
Checking Peras.QCD.Protocol (/extra/iohk/peras-design.msd/src/Peras/QCD/Protocol.agda).
Checking Peras.QCD.Types.Instances (/extra/iohk/peras-design.msd/src/Peras/QCD/Types/Instances.agda).
Checking Peras.QCD.Util (/extra/iohk/peras-design.msd/src/Peras/QCD/Util.agda).
Checking Peras.QCD.Node.Model (/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Model.agda).
Checking Peras.QCD.State (/extra/iohk/peras-design.msd/src/Peras/QCD/State.agda).
Checking Peras.QCD.Node.Preagreement (/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Preagreement.agda).
/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Specification.agda:233,29-235,93
illegal instance: iHashEq
$ agda2hs --local-interfaces --library-file=$AGDA_LIBS --compile-dir=peras-hs/src src/Peras/QCD/Node/Specification.agda
Success also occurs if agda
is run and then agda2hs
is run:
$ find -type f -name \*.agdai -delete
$ agda --local-interfaces --library-file=$AGDA_LIBS --compile-dir=peras-hs/src src/Peras/QCD/Node/Specification.agda
Checking Peras.QCD.Node.Specification (/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Specification.agda).
Checking Peras.QCD.Crypto (/extra/iohk/peras-design.msd/src/Peras/QCD/Crypto.agda).
Checking Peras.QCD.Crypto.Placeholders (/extra/iohk/peras-design.msd/src/Peras/QCD/Crypto/Placeholders.agda).
Checking Peras.QCD.Types (/extra/iohk/peras-design.msd/src/Peras/QCD/Types.agda).
Checking Peras.QCD.Protocol (/extra/iohk/peras-design.msd/src/Peras/QCD/Protocol.agda).
Checking Peras.QCD.Types.Instances (/extra/iohk/peras-design.msd/src/Peras/QCD/Types/Instances.agda).
Checking Peras.QCD.Util (/extra/iohk/peras-design.msd/src/Peras/QCD/Util.agda).
Checking Peras.QCD.Node.Model (/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Model.agda).
Checking Peras.QCD.State (/extra/iohk/peras-design.msd/src/Peras/QCD/State.agda).
Checking Peras.QCD.Node.Preagreement (/extra/iohk/peras-design.msd/src/Peras/QCD/Node/Preagreement.agda).
$ agda2hs --local-interfaces --library-file=$AGDA_LIBS --compile-dir=peras-hs/src src/Peras/QCD/Node/Specification.agda
This sounds like an upstream issue in Agda rather than a bug in agda2hs itself. Perhaps it could be fixed by https://github.com/agda/agda/pull/7251?
@bwbush Could you provide a minimized reproducer for this issue? Otherwise it is not really possible to look deeper into it.
Alternatively, you could try to use a patched version of agda2hs that includes the patch to base agda I mentioned above.