bishabosha/Mesa
Functional Language extending the enriched effect calculus. Linear usage of effects. Implemented with Scala 3.
{ "createdAt": "2018-12-17T23:58:24Z", "defaultBranch": "master", "description": "Functional Language extending the enriched effect calculus. Linear usage of effects. Implemented with Scala 3.", "fullName": "bishabosha/Mesa", "homepage": "", "language": "Scala", "name": "Mesa", "pushedAt": "2025-08-05T16:56:18Z", "stargazersCount": 21, "topics": [], "updatedAt": "2025-08-05T16:56:19Z", "url": "https://github.com/bishabosha/Mesa"}Current Release
Section titled “Current Release”0.3.6-SNAPSHOT
This repository is for implementing a programming language based on the enriched effect calculus by Egger, Ejlers and Simpson (2014).
Changes
Section titled “Changes”- Refer to [CHANGELOG.md]!(CHANGELOG.md)
Features
Section titled “Features”-
Read Eval Print Loop
- Define Mesa terms and type-check them.
- Print the meta AST for Mesa terms and source files.
- Print the derived types of Mesa terms and source files.
- Print the current environment of terms and types.
-
Linear types that enforce the linear usage of effects.
- Proof of isomorphisms in Proposition 4.1. of Egger, Ejlers and Simpson (2014) can be found in [mesa/Isomorphisms.hs]!(mesa/Isomorphisms.hs).
-
Haskell-like syntax
- Source files use
.hssuffix at present to benefit from syntax highlighting. - Refer to [mesa/src/main/antlr4/Mesa.g4]!(mesa/src/main/antlr4/Mesa.g4) for a context free grammar.
- Source files use
Author
Section titled “Author”- James Thompson, BSc. University of Bath.
- Load sbt with
sbt - To run tests, in the sbt CLI use
test. - To launch the EEC REPL, in the sbt CLI use
run -e.
:helpto get a list of commands available.:tfto type check a file in the current directory, e.g.mesa/Isomorphisms.hs; adding any definitions to the environment.:ctxto print the current environment after defining terms.:resetto clear all definitions in the environment.:defto define a new top level definition.:tto type an expression.:astto print the AST of an expression.:asttto print the AST of a top level definition.:astfto print the AST of a source file in the current directory.:cdto change the working directory:pwdto print the working directory:qto quit the REPL.
References
Section titled “References”- Egger, J., Ejlers, R. and Simpson, A., 2014. The enriched effect calculus: syntax and semantics. Journal of Logic and Computation, 24(3), pp.615-654.