wip nix
This commit is contained in:
parent
4973ce15bd
commit
7f415328a2
14 changed files with 667 additions and 94 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,7 +1,6 @@
|
||||||
.build
|
.build
|
||||||
build
|
build
|
||||||
depends
|
depends
|
||||||
*.ipkg
|
|
||||||
*~
|
*~
|
||||||
quox
|
quox
|
||||||
quox-tests
|
quox-tests
|
||||||
|
|
1
default.nix
Normal file
1
default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
(import (fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz") { src = ./.; }).defaultNix
|
8
exe/quox-exe.ipkg
Normal file
8
exe/quox-exe.ipkg
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
package quox-exe
|
||||||
|
version = 0
|
||||||
|
|
||||||
|
depends = base, contrib, elab-util, sop, quox
|
||||||
|
|
||||||
|
executable = quox
|
||||||
|
sourcedir = "src"
|
||||||
|
main = Main
|
|
@ -1,14 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"name" : "quox-exe",
|
|
||||||
|
|
||||||
"deps" : [
|
|
||||||
{ "name" : "base", "legacy" : true },
|
|
||||||
{ "name" : "contrib", "legacy" : true },
|
|
||||||
{ "name" : "quox", "local" : ".." }
|
|
||||||
],
|
|
||||||
|
|
||||||
"main" : "Main",
|
|
||||||
"modules" : ["Main"]
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -9,6 +9,7 @@ import public Quox.Typechecker
|
||||||
|
|
||||||
import Data.Nat
|
import Data.Nat
|
||||||
import Data.Vect
|
import Data.Vect
|
||||||
|
import Data.List
|
||||||
import Control.ANSI
|
import Control.ANSI
|
||||||
|
|
||||||
|
|
||||||
|
|
575
flake.lock
Normal file
575
flake.lock
Normal file
|
@ -0,0 +1,575 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"Prettier": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639310097,
|
||||||
|
"narHash": "sha256-+eSLEJDuy2ZRkh1h0Y5IF6RUeHEcWhAHpWhwdwW65f0=",
|
||||||
|
"owner": "Z-snails",
|
||||||
|
"repo": "prettier",
|
||||||
|
"rev": "4a90663b1d586f6d6fce25873aa0f0d7bc633b89",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Z-snails",
|
||||||
|
"repo": "prettier",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collie": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1631011321,
|
||||||
|
"narHash": "sha256-goYctB+WBoLgsbjA0DlqGjD8i9wr1K0lv0agqpuwflU=",
|
||||||
|
"owner": "ohad",
|
||||||
|
"repo": "collie",
|
||||||
|
"rev": "ed2eda5e04fbd02a7728e915d396e14cc7ec298e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ohad",
|
||||||
|
"repo": "collie",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"comonad": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638093386,
|
||||||
|
"narHash": "sha256-kxmN6XuszFLK2i76C6LSGHe5XxAURFu9NpzJbi3nodk=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-comonad",
|
||||||
|
"rev": "06d6b551db20f1f940eb24c1dae051c957de97ad",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-comonad",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dom": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041519,
|
||||||
|
"narHash": "sha256-4ZYc0qaUEVARxhWuH3JgejIeT+GEDNxdS6zIGhBCk34=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-dom",
|
||||||
|
"rev": "01ab52d0ffdb3b47481413a949b8f0c0688c97e4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-dom",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dot-parse": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638264571,
|
||||||
|
"narHash": "sha256-VJQITz+vuQgl5HwR5QdUGwN8SRtGcb2/lJaAVfFbiSk=",
|
||||||
|
"owner": "CodingCellist",
|
||||||
|
"repo": "idris2-dot-parse",
|
||||||
|
"rev": "48fbda8bf8adbaf9e8ebd6ea740228e4394154d9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "CodingCellist",
|
||||||
|
"repo": "idris2-dot-parse",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"effect": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1637477153,
|
||||||
|
"narHash": "sha256-Ta2Vogg/IiSBkfhhD57jjPTEf3S4DOiVRmof38hmwlM=",
|
||||||
|
"owner": "russoul",
|
||||||
|
"repo": "idris2-effect",
|
||||||
|
"rev": "ea1daf53b2d7e52f9917409f5653adc557f0ee1a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "russoul",
|
||||||
|
"repo": "idris2-effect",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"elab-util": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041013,
|
||||||
|
"narHash": "sha256-K61s/xifFiTDXJTak5NZmZL6757CTYCY+TGywRZMD7M=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-elab-util",
|
||||||
|
"rev": "7a381c7c5dc3adb7b97c8b8be17e4fb4cc63027d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-elab-util",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1649676176,
|
||||||
|
"narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638122382,
|
||||||
|
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frex": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1637410704,
|
||||||
|
"narHash": "sha256-BthU1t++n0ZvS76p0fCHsE33QSoXYxf0hMUSKajDY8w=",
|
||||||
|
"owner": "frex-project",
|
||||||
|
"repo": "idris-frex",
|
||||||
|
"rev": "22c480e879c757a5cebca7bb555ec3d21ae3ac28",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "frex-project",
|
||||||
|
"repo": "idris-frex",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fvect": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1633247988,
|
||||||
|
"narHash": "sha256-zElIze03XpcrYL4H5Aj0ZGNplJGbtOx+iWnivJMzHm0=",
|
||||||
|
"owner": "mattpolzin",
|
||||||
|
"repo": "idris-fvect",
|
||||||
|
"rev": "1c5e3761e0cd83e711a3535ef9051bea45e6db3f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mattpolzin",
|
||||||
|
"repo": "idris-fvect",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hashable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1633965157,
|
||||||
|
"narHash": "sha256-Dggf5K//RCZ7uvtCyeiLNJS6mm+8/n0RFW3zAc7XqPg=",
|
||||||
|
"owner": "z-snails",
|
||||||
|
"repo": "idris2-hashable",
|
||||||
|
"rev": "d6fec8c878057909b67f3d4da334155de4f37907",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "z-snails",
|
||||||
|
"repo": "idris2-hashable",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hedgehog": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041435,
|
||||||
|
"narHash": "sha256-893cPy7gGSQpVmm9co3QCpWsgjukafZHy8YFk9xts30=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-hedgehog",
|
||||||
|
"rev": "a66b1eb0bf84c4a7b743cfb217be69866bc49ad8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-hedgehog",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idrall": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1636495701,
|
||||||
|
"narHash": "sha256-aOdCRd4XsSxwqVGta1adlZBy8TVTxTwFDnJ1dyMZK8M=",
|
||||||
|
"owner": "alexhumphreys",
|
||||||
|
"repo": "idrall",
|
||||||
|
"rev": "13ef174290169d05c9e9abcd77c53412e3e0c944",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "alexhumphreys",
|
||||||
|
"ref": "13ef174",
|
||||||
|
"repo": "idrall",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idris-server": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1634507315,
|
||||||
|
"narHash": "sha256-ulo23yLJXsvImoMB/1C6yRRTqmn/Odo+aUaVi+tUhJo=",
|
||||||
|
"owner": "avidela",
|
||||||
|
"repo": "idris-server",
|
||||||
|
"rev": "661a4ecf0fadaa2bd79c8e922c2d4f79b0b7a445",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "avidela",
|
||||||
|
"repo": "idris-server",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idris2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639427352,
|
||||||
|
"narHash": "sha256-C1K2FM1Kio8vi9FTrivdacYCX4cywIsLBeNCsZ6ft4g=",
|
||||||
|
"owner": "idris-lang",
|
||||||
|
"repo": "idris2",
|
||||||
|
"rev": "36918e618646177b1e0c2fd01f21cc8d04d9da30",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "idris-lang",
|
||||||
|
"repo": "idris2",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idris2-pkgs": {
|
||||||
|
"inputs": {
|
||||||
|
"Prettier": "Prettier",
|
||||||
|
"collie": "collie",
|
||||||
|
"comonad": "comonad",
|
||||||
|
"dom": "dom",
|
||||||
|
"dot-parse": "dot-parse",
|
||||||
|
"effect": "effect",
|
||||||
|
"elab-util": "elab-util",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"frex": "frex",
|
||||||
|
"fvect": "fvect",
|
||||||
|
"hashable": "hashable",
|
||||||
|
"hedgehog": "hedgehog",
|
||||||
|
"idrall": "idrall",
|
||||||
|
"idris-server": "idris-server",
|
||||||
|
"idris2": "idris2",
|
||||||
|
"indexed": "indexed",
|
||||||
|
"inigo": "inigo",
|
||||||
|
"ipkg-to-json": "ipkg-to-json",
|
||||||
|
"json": "json",
|
||||||
|
"katla": "katla",
|
||||||
|
"lsp": "lsp",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"odf": "odf",
|
||||||
|
"pretty-show": "pretty-show",
|
||||||
|
"python": "python",
|
||||||
|
"rhone": "rhone",
|
||||||
|
"rhone-js": "rhone-js",
|
||||||
|
"snocvect": "snocvect",
|
||||||
|
"sop": "sop",
|
||||||
|
"tailrec": "tailrec",
|
||||||
|
"xml": "xml"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1642030375,
|
||||||
|
"narHash": "sha256-J1uXnpPR72mjFjLBuYcvDHStBxVya6/MjBNNwqxGeD0=",
|
||||||
|
"owner": "claymager",
|
||||||
|
"repo": "idris2-pkgs",
|
||||||
|
"rev": "ac33a49d4d4bd2b50fddb040cd889733a02c8f09",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "claymager",
|
||||||
|
"repo": "idris2-pkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexed": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638685238,
|
||||||
|
"narHash": "sha256-FceB7o88yKYzjTfRC6yfhOL6oDPMmCQAsJZu/pjE2uA=",
|
||||||
|
"owner": "mattpolzin",
|
||||||
|
"repo": "idris-indexed",
|
||||||
|
"rev": "ff3ba99b0063da6a74c96178e7f3c58a4ac1693e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mattpolzin",
|
||||||
|
"repo": "idris-indexed",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inigo": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1637596767,
|
||||||
|
"narHash": "sha256-LNx30LO0YWDVSPTxRLWGTFL4f3d5ANG6c60WPdmiYdY=",
|
||||||
|
"owner": "idris-community",
|
||||||
|
"repo": "Inigo",
|
||||||
|
"rev": "57f5b5c051222d8c630010a0a3cf7d7138910127",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "idris-community",
|
||||||
|
"repo": "Inigo",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ipkg-to-json": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1634937414,
|
||||||
|
"narHash": "sha256-LhSmWRpI7vyIQE7QTo38ZTjlqYPVSvV/DIpIxzPmqS0=",
|
||||||
|
"owner": "claymager",
|
||||||
|
"repo": "ipkg-to-json",
|
||||||
|
"rev": "2969b6b83714eeddc31e41577a565778ee5922e6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "claymager",
|
||||||
|
"repo": "ipkg-to-json",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041459,
|
||||||
|
"narHash": "sha256-TP/V1jBBP1hFPm/cJ5O2EJiaNoZ19KvBOAI0S9lvAR4=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-json",
|
||||||
|
"rev": "7c0c028acad0ba0b63b37b92199f37e6ec73864a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-json",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"katla": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1636542431,
|
||||||
|
"narHash": "sha256-X83NA/P3k1iPcBa8g5z8JldEmFEz/jxVeViJX0/FikY=",
|
||||||
|
"owner": "idris-community",
|
||||||
|
"repo": "katla",
|
||||||
|
"rev": "d841ec243f96b4762074211ee81033e28884c858",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "idris-community",
|
||||||
|
"repo": "katla",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lsp": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639486283,
|
||||||
|
"narHash": "sha256-po396FnUu8iqiipwPxqpFZEU4rtpX3jnt3cySwjLsH8=",
|
||||||
|
"owner": "idris-community",
|
||||||
|
"repo": "idris2-lsp",
|
||||||
|
"rev": "7ebb6caf6bb4b57c5107579aba2b871408e6f183",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "idris-community",
|
||||||
|
"repo": "idris2-lsp",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639213685,
|
||||||
|
"narHash": "sha256-Evuobw7o9uVjAZuwz06Al0fOWZ5JMKOktgXR0XgWBtg=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "453bcb8380fd1777348245b3c44ce2a2b93b2e2d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-21.11-darwin",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"odf": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638184051,
|
||||||
|
"narHash": "sha256-usSdPx+UqOGImHHdHcrytdzi2LXtIRZuUW0fkD/Wwnk=",
|
||||||
|
"owner": "madman-bob",
|
||||||
|
"repo": "idris2-odf",
|
||||||
|
"rev": "d2f532437321c8336f1ca786b44b6ebef4117126",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "madman-bob",
|
||||||
|
"repo": "idris2-odf",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pretty-show": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041411,
|
||||||
|
"narHash": "sha256-BzEe1fpX+lqGEk8b1JZoQT1db5I7s7SZnLCttRVGXdY=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-pretty-show",
|
||||||
|
"rev": "a4bc6156b9dac43699f87504cbdb8dada5627863",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-pretty-show",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"python": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1635936936,
|
||||||
|
"narHash": "sha256-c9mcMApN0qgu0AXQVu0V+NXt2poP258wCPkyvtQvv4I=",
|
||||||
|
"owner": "madman-bob",
|
||||||
|
"repo": "idris2-python",
|
||||||
|
"rev": "0eab028933c65bebe744e879881416f5136d6943",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "madman-bob",
|
||||||
|
"repo": "idris2-python",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rhone": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041532,
|
||||||
|
"narHash": "sha256-2g43shlWQIT/1ogesUBUBV9N8YiD3RwaCbbhdKLVp1s=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-rhone",
|
||||||
|
"rev": "c4d828b0b8efea495d9a5f1e842a9c67cad57724",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-rhone",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rhone-js": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041546,
|
||||||
|
"narHash": "sha256-ddWVsSRbfA6ghmwiRMzDpHBPM+esGdutuqm1qQZgs88=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-rhone-js",
|
||||||
|
"rev": "520dd59549f5b14075045314b6805c7492ed636e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-rhone-js",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"idris2-pkgs": "idris2-pkgs",
|
||||||
|
"nixpkgs": [
|
||||||
|
"idris2-pkgs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"snocvect": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1641633224,
|
||||||
|
"narHash": "sha256-6zTU4sDzd/R/dFCTNZaX41H4L3/USGLFghMS0Oc9liY=",
|
||||||
|
"owner": "mattpolzin",
|
||||||
|
"repo": "idris-snocvect",
|
||||||
|
"rev": "ff1e7afba360a62f7e522e9bbb856096a79702c4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mattpolzin",
|
||||||
|
"repo": "idris-snocvect",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sop": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639041379,
|
||||||
|
"narHash": "sha256-PDTf1Wx6EygiWszguvoVPiqIISYFLabI4e0lXHlrjcA=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-sop",
|
||||||
|
"rev": "e4354d1883cd73616019457cb9ebf864d99df6a0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-sop",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tailrec": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1637146655,
|
||||||
|
"narHash": "sha256-0yi7MQIrISPvAwkgDC1M5PHDEeVyIaISF0HjKDaT0Rw=",
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-tailrec",
|
||||||
|
"rev": "dd0bc6381b3a2e69aa37f9a8c1b165d4b1516ad7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "stefan-hoeck",
|
||||||
|
"repo": "idris2-tailrec",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xml": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1637939752,
|
||||||
|
"narHash": "sha256-yYJBhPfwYoi7amlHmeNGrVCOAc3BjZpKTCd9wDs3XEM=",
|
||||||
|
"owner": "madman-bob",
|
||||||
|
"repo": "idris2-xml",
|
||||||
|
"rev": "1292ccfcd58c551089ef699e4560343d5c473d64",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "madman-bob",
|
||||||
|
"repo": "idris2-xml",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
30
flake.nix
Normal file
30
flake.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ description = "quox: quantitative extensional type theory";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
idris2-pkgs.url = "github:claymager/idris2-pkgs";
|
||||||
|
nixpkgs.follows = "idris2-pkgs/nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, idris2-pkgs, flake-utils }:
|
||||||
|
let systems = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ]; in
|
||||||
|
flake-utils.lib.eachSystem systems (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [ idris2-pkgs.overlay ];
|
||||||
|
};
|
||||||
|
inherit (pkgs.idris2-pkgs._builders) idrisPackage devEnv;
|
||||||
|
quox = idrisPackage ./. { };
|
||||||
|
quox-exe = idrisPackage ./exe { extraPkgs.quox = quox; };
|
||||||
|
quox-tests = idrisPackage ./tests { extraPkgs.quox = quox; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
defaultPackage = quox-exe;
|
||||||
|
|
||||||
|
packages = { inherit quox quox-exe quox-tests; };
|
||||||
|
|
||||||
|
devShell = pkgs.mkShell { buildInputs = [ (devEnv quox) ]; };
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
37
quox.ipkg
Normal file
37
quox.ipkg
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
package quox
|
||||||
|
version = 0
|
||||||
|
|
||||||
|
authors = "rhiannon morris"
|
||||||
|
sourceloc = "https://git.rhiannon.website/rhi/quox"
|
||||||
|
license = "acsl"
|
||||||
|
|
||||||
|
depends = base, contrib, elab-util, sop
|
||||||
|
|
||||||
|
sourcedir = "src"
|
||||||
|
modules =
|
||||||
|
Quox.Error,
|
||||||
|
Quox.NatExtra,
|
||||||
|
Quox.OPE,
|
||||||
|
Quox.Pretty,
|
||||||
|
Quox.Syntax,
|
||||||
|
Quox.Syntax.Dim,
|
||||||
|
Quox.Syntax.DimEq,
|
||||||
|
Quox.Syntax.Qty,
|
||||||
|
Quox.Syntax.Shift,
|
||||||
|
Quox.Syntax.Subst,
|
||||||
|
Quox.Syntax.Term,
|
||||||
|
Quox.Syntax.Term.Base,
|
||||||
|
Quox.Syntax.Term.Pretty,
|
||||||
|
Quox.Syntax.Term.Reduce,
|
||||||
|
Quox.Syntax.Term.Split,
|
||||||
|
Quox.Syntax.Term.Subst,
|
||||||
|
Quox.Syntax.Universe,
|
||||||
|
Quox.Syntax.Var,
|
||||||
|
Quox.Token,
|
||||||
|
Quox.Lexer,
|
||||||
|
Quox.Context,
|
||||||
|
Quox.Equal,
|
||||||
|
Quox.Name,
|
||||||
|
Quox.Reduce,
|
||||||
|
Quox.Typing,
|
||||||
|
Quox.Typechecker
|
55
sirdi.json
55
sirdi.json
|
@ -1,55 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"name" : "quox",
|
|
||||||
"version" : "0.0.0",
|
|
||||||
"passthru": {
|
|
||||||
"license" : "acsl",
|
|
||||||
"authors" : ["rhiannon morris"],
|
|
||||||
"sourceloc" : "https://git.rhiannon.website/rhi/quox"
|
|
||||||
},
|
|
||||||
|
|
||||||
"deps" : [
|
|
||||||
{ "name" : "base", "legacy" : true },
|
|
||||||
{ "name" : "contrib", "legacy" : true },
|
|
||||||
{ "name" : "sop",
|
|
||||||
"git" : {
|
|
||||||
"url" : "https://git.rhiannon.website/rhi/idris2-sop",
|
|
||||||
"commit" : "defdbc74a28104a32149922ed9f9ee70099d4f59"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
"modules" : [
|
|
||||||
"Quox.Error",
|
|
||||||
"Quox.NatExtra",
|
|
||||||
"Quox.OPE",
|
|
||||||
"Quox.Pretty",
|
|
||||||
|
|
||||||
"Quox.Syntax",
|
|
||||||
"Quox.Syntax.Dim",
|
|
||||||
"Quox.Syntax.DimEq",
|
|
||||||
"Quox.Syntax.Qty",
|
|
||||||
"Quox.Syntax.Shift",
|
|
||||||
"Quox.Syntax.Subst",
|
|
||||||
"Quox.Syntax.Term",
|
|
||||||
"Quox.Syntax.Term.Base",
|
|
||||||
"Quox.Syntax.Term.Pretty",
|
|
||||||
"Quox.Syntax.Term.Reduce",
|
|
||||||
"Quox.Syntax.Term.Split",
|
|
||||||
"Quox.Syntax.Term.Subst",
|
|
||||||
"Quox.Syntax.Universe",
|
|
||||||
"Quox.Syntax.Var",
|
|
||||||
|
|
||||||
"Quox.Token",
|
|
||||||
"Quox.Lexer",
|
|
||||||
|
|
||||||
"Quox.Context",
|
|
||||||
"Quox.Equal",
|
|
||||||
"Quox.Name",
|
|
||||||
"Quox.Reduce",
|
|
||||||
|
|
||||||
"Quox.Typing",
|
|
||||||
"Quox.Typechecker"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
7
tests/quox-tests.ipkg
Normal file
7
tests/quox-tests.ipkg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
package quox-tests
|
||||||
|
|
||||||
|
depends = base, contrib, elab-util, sop, quox
|
||||||
|
|
||||||
|
executable = quox-tests
|
||||||
|
sourcedir = "src"
|
||||||
|
main = Tests
|
|
@ -1,21 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"name" : "quox-tests",
|
|
||||||
|
|
||||||
"deps" : [
|
|
||||||
{ "name" : "base", "legacy" : true },
|
|
||||||
{ "name" : "contrib", "legacy" : true },
|
|
||||||
{ "name" : "quox", "local" : ".." }
|
|
||||||
],
|
|
||||||
|
|
||||||
"main" : "Tests",
|
|
||||||
"modules" : [
|
|
||||||
"Tests",
|
|
||||||
"Options",
|
|
||||||
"TAP",
|
|
||||||
|
|
||||||
"Tests.Lexer",
|
|
||||||
"Tests.Equal"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -30,11 +30,15 @@ getArgs1 : IO (List String)
|
||||||
getArgs1 =
|
getArgs1 =
|
||||||
case !getArgs of
|
case !getArgs of
|
||||||
_ :: args => pure args
|
_ :: args => pure args
|
||||||
[] => die "expecting getArgs to start with exe name"
|
[] => do
|
||||||
|
putStrLn "expecting getArgs to start with exe name"
|
||||||
|
exitFailure
|
||||||
|
|
||||||
export
|
export
|
||||||
getTestOpts : IO Options
|
getTestOpts : IO Options
|
||||||
getTestOpts =
|
getTestOpts =
|
||||||
case getOpt Permute opts !getArgs1 of
|
case getOpt Permute opts !getArgs1 of
|
||||||
MkResult opts [] [] [] => pure $ makeOpts opts
|
MkResult opts [] [] [] => pure $ makeOpts opts
|
||||||
res => die $ unlines $ res.errors ++ [usageInfo "quox test suite" opts]
|
res => do
|
||||||
|
traverse_ putStrLn $ res.errors ++ [usageInfo "quox test suite" opts]
|
||||||
|
exitFailure
|
||||||
|
|
|
@ -5,6 +5,7 @@ import public Quox.Error
|
||||||
|
|
||||||
import Data.String
|
import Data.String
|
||||||
import Data.List.Elem
|
import Data.List.Elem
|
||||||
|
import Data.SnocList
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System
|
import System
|
||||||
|
|
|
@ -17,5 +17,5 @@ main = do
|
||||||
go <- case opts.tapVersion of
|
go <- case opts.tapVersion of
|
||||||
"13" => pure TAP.mainFlat
|
"13" => pure TAP.mainFlat
|
||||||
"14" => pure TAP.main
|
"14" => pure TAP.main
|
||||||
_ => die "unrecognised TAP version; use 13 or 14"
|
_ => do putStrLn "unrecognised TAP version; use 13 or 14"; exitFailure
|
||||||
go allTests
|
go allTests
|
||||||
|
|
Loading…
Reference in a new issue