lorentz: EDSL for the Michelson Language

[ agpl, language, library ] [ Propose Tags ]

Lorentz is a powerful meta-programming tool which allows one to write Michelson contracts directly in Haskell. It has the same instructions as Michelson, but operates on Haskell values and allows one to use Haskell features.


[Skip to Readme]
Versions [faq] 0.1.0
Change log CHANGES.md
Dependencies base-noprelude (>=4.7 && <5), bimap, bytestring, constraints (>=0.11), containers, data-default, first-class-families (>=0.5.0.0), fmt, formatting, ghc-prim, hspec, HUnit, interpolate, lens, morley, morley-prelude (>=0.3.0), named, optparse-applicative, pretty-terminal, QuickCheck, singletons, tasty, template-haskell, text, unordered-containers, vinyl [details]
License AGPL-3.0-or-later
Copyright 2019-2020 Tocqueville Group
Author camlCase, Serokell, Tocqueville Group
Maintainer Serokell <hi@serokell.io>
Category Language
Home page https://gitlab.com/morley-framework/morley
Bug tracker https://gitlab.com/morley-framework/morley/issues
Source repo head: git clone git@gitlab.com:morley-framework/morley.git
Uploaded by gromak at Wed Feb 26 12:51:47 UTC 2020
Distributions NixOS:0.1.0
Downloads 73 total (39 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-02-26 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for lorentz-0.1.0

[back to package description]

Morley Lorentz EDSL

Lorentz is a powerful meta-programming tool which allows one to write Michelson contracts directly in Haskell.

Haskell's type checker and automatic type inference facilitate contracts implementation and reduce boilerplate related to types. Adoption of Algebraic Data Types makes work with complex objects safe and convenient. Later Lorentz contract can be dumped as a plain textual Michelson contract using functions from Michelson.Printer.

You can find Lorentz instructions in Lorentz modules.

Examples of using Lorentz eDSL reside in the morley-ledgers package. For more information, refer to that package's README.