packages feed

morley-0.1.0.0: README.md

# Morley: Developer tools for the Michelson Language

Morley is a library to make writing smart contracts in Michelson pleasant and
effective.

## I: A reimplementation of the Michelson Language in Haskell

- `Michelson.Untyped`: Simple data types representing Michelson smart
  contracts and expresions. We use word `Untyped` to reflect that
  Michelson type of corresponding Haskel values is not statically known
  (e. g. there is a `Value` type which is basically dynamically typed).
- `Michelson.Typed`: These modules contain more advanced types comparing to
  `Michelson.Untyped` with similar semantics. These types use `GADTs` GHC
  extension and in this representation Michelson type of each value and
  instruction is statically known. There are also some utilities to use this
  advanced machinery.
- `Michelson.TypeCheck`: A typechecker that validates ADT's that conform to
  Michelson's typing rules.
- `Michelson.Intepreter`: An intepreter for Michelson contracts which doesn't
  perform any side effects.
- `Morley.Types`: Types for macros, syntactic sugar, and interpreter directives.
- `Morley.Parser` A parser to turn a `.tz` file into an ADT.
- `Morley.Runtime`: An interpreter that executes a well-typed Morley smart
  contract in a sandbox.

## II: Testing tools (TBD)

- `Morley.REPL`: An interactive REPL with stack visualization.
- `Morley.QuickCheck`: QuickCheck generators for arbitary Michelson `Value`s,
  `LAMBDA`s and `Contract`s.
- `Morley.Sandbox`: Simulating a more realistic network environment, multiple
   smart contracts in the same sandbox.

## Issue Tracker

We use [YouTrack](https://issues.serokell.io/issues/TM) as our issue
tracker. You can login using your GitHub account to leave a comment or
create a new issue.

## For Contributors

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.