https://github.com/andreasabel/miniagda
A prototypical dependently typed languages with sized types and variances
https://github.com/andreasabel/miniagda
Last synced: 11 months ago
JSON representation
A prototypical dependently typed languages with sized types and variances
- Host: GitHub
- URL: https://github.com/andreasabel/miniagda
- Owner: andreasabel
- License: mit
- Created: 2016-12-16T15:22:00.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-11-21T11:29:14.000Z (about 3 years ago)
- Last Synced: 2025-02-27T10:35:07.130Z (12 months ago)
- Language: Haskell
- Size: 1.3 MB
- Stars: 107
- Watchers: 7
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
- programming-languages - MiniAgda - Prototypical dependently typed languages with sized types and variances. (Other)
README
# MiniAgda
[![Cabal build][ci-badge]][ci-action]
[![Hackage][hackage-badge]][hackage]
[ci-action]:
[ci-badge]:
[hackage]:
[hackage-badge]:
A prototypical dependently typed languages with sized types and variances.
## Installation from Hackage
Requires `ghc` and `cabal`, for instance via the Haskell Platform or via `ghcup`.
In a shell, type
```
cabal update
cabal install MiniAgda
```
## Installation from Stackage
MiniAgda is not on Stackage because it depends on a specific version of `haskell-src-exts` rather than the latest version.
You can install with `stack` from source though, see next section.
## Installation from source
1. Obtain the sources.
```
git clone https://github.com/andreasabel/miniagda
cd miniagda
```
2. Checkout the desired version (optional):
If you want to build a released version or a branch rather than the latest `master`, switch to this version/branch.
```
git checkout $REF
```
E.g. `REF = v0.2022.3.11` for version `0.2022.3.11` or `REF = unfold` for branch `unfold`.
3. Building and running the tests (optional).
- With `cabal` (requires `ghc` in your PATH):
```
cabal build --enable-tests
cabal test
```
After building, you can run MiniAgda locally, e.g.:
```
cabal run miniagda -- examples/Gcd/gcd.ma
```
- With `stack`:
```
stack build --stack-yaml=stack-$GHCVER.yaml
stack test --stack-yaml=stack-$GHCVER.yaml
```
At the time of writing (2022-05-14), `GHCVER` can be any of `8.8.4`, `8.10.7`, `9.0.2`, or `9.2.2`.
After building, you can run MiniAgda locally, e.g.:
```
stack run --stack-yaml=stack-9.2.2.yaml -- examples/Gcd/gcd.ma
```
You can copy `stack-$GHCVER.yaml` for your choice of `GHCVER` into `stack.yaml` and drop the `--stack-yaml` argument from `stack` invocation.
4. Install.
- With `cabal` (requires `ghc` in your PATH):
```
cabal install
```
- With `stack`:
```
stack install --stack-yaml=stack-$GHCVER.yaml
```
At the time of writing (2022-05-14), `GHCVER` can be any of `8.8.4`, `8.10.7`, `9.0.2`, or `9.2.2`.
Note that the respective installation directory should be on your PATH.
## Examples
See directories ``test/succeed/`` and ``examples/``.
Some examples are commented on the (dormant) [MiniAgda blog](http://www.cse.chalmers.se/~abela/miniagda/index.html).