Skip to content

WIP: [TM-68] Initial WIP draft of Lorentz DSL

John Burnham requested to merge jcb/tm68-lorentz into master

Description

Problem: Implicit DSL in Michelson.Typed.Instr is designed for use in Michelson.TypeCheck and is awkward for directly writing contracts.

Solution: With liberal use of type synonyms and new functions to reexport Michelson.Type.Instr constructors, define new DSL Lorentz and write example contract Auction.hs

Needed improvements are:

  • Integration with TzPrinter from jcb/tm58-printer to test that the outputted Michelson is well-formed
  • Better interfacing syntax for Michelson.Typed.Arith and Michelson.Typed.Polymorphic
  • Better interfacing syntax for Michelson.Typed.Value
  • Rename types in Michelson.Untyped.Type and Michelson.Typed.T according to https://issues.serokell.io/issue/TM-66 or some other, better schema.
  • Related to previous point, figure out how to improve error messages, which are currently somewhat challenging to read

Related issue(s)

https://issues.serokell.io/issue/TM-68

Checklist for your Merge Request

Related changes (conditional)

  • Tests

    • If I added new functionality, I added tests covering it.
    • If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
  • Documentation

    • I checked whether I should update the docs and did so if necessary:

Stylistic guide (mandatory)

Merge request reports

Loading