Instead to play with Coq, I played with GADTs. The next goal is to map the ADT with the 1ml lambda ADT, then, the second goal is to produce a malfunction output.
If I understand correctly your code, you have two typed lambda-calculus with base types : one in the module A, and one in the module B. And in the latter you use GADT to enforce well-typed AST. Am I right ?
Are you aware of the Programming Languages Zoo from Andrej Bauer ? There is already a miniml implemented with this framework : presentation on its website. It may be useful to have a REPL for your languages (to play with them) before native-compiled them via malfunction.
Yeah it could be useful to branch an REPL on the ADT and try to translate the input to the GADT (and compute it) ! I think, it’s not a big deal (just boring lexing and parsing, but I can take plzoo for that).
I would like to branch 1ml from the Andreas Rossberg’s paper ! Then @anon72795300, I see the initiative of Darin Morison on twitter, but my goal is just for fun (it’s not serious) and I asked before this initiative to Andreas Rossberg to share a github repository to fork it (and keep the [paternity law][^1] of the project).