# 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`](/src/Michelson/Printer.hs). You can find Lorentz instructions in [`Lorentz`](src/Lorentz.hs) modules. Examples of using Lorentz eDSL reside in the [`morley-ledgers`](/morley-ledgers) package. For more information, refer to that package's [README](/morley-ledgers/README.md).