1 { pkgs, idris-no-deps, overrides ? (self: super: {}) }: let
2 inherit (pkgs.lib) callPackageWith fix' extends;
4 /* Taken from haskell-modules/default.nix, should probably abstract this away */
5 callPackageWithScope = scope: drv: args: (callPackageWith scope drv args) // {
6 overrideScope = f: callPackageWithScope (mkScope (fix' (extends f scope.__unfix__))) drv args;
9 mkScope = scope : pkgs // pkgs.xorg // pkgs.gnome2 // scope;
11 idrisPackages = self: let
12 defaultScope = mkScope self;
14 callPackage = callPackageWithScope defaultScope;
16 builtins_ = pkgs.lib.mapAttrs self.build-builtin-package {
19 base = [ self.prelude ];
21 contrib = [ self.prelude self.base ];
23 effects = [ self.prelude self.base ];
25 pruviloj = [ self.prelude self.base ];
30 inherit idris-no-deps callPackage;
32 # Idris wrapper with specified compiler and library paths, used to build packages
34 idris = pkgs.callPackage ./idris-wrapper.nix {
35 inherit idris-no-deps;
38 # Utilities for building packages
40 with-packages = callPackage ./with-packages.nix {} ;
42 build-builtin-package = callPackage ./build-builtin-package.nix {};
44 build-idris-package = callPackage ./build-idris-package.nix {};
46 # The set of libraries that comes with idris
48 builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
52 array = callPackage ./array.nix {};
54 bi = callPackage ./bi.nix {};
56 bifunctors = callPackage ./bifunctors.nix {};
58 bytes = callPackage ./bytes.nix {};
60 canvas = callPackage ./canvas.nix {};
62 categories = callPackage ./categories.nix {};
64 coda = callPackage ./coda.nix {};
66 config = callPackage ./config.nix {};
68 comonad = callPackage ./comonad.nix {};
70 composition = callPackage ./composition.nix {};
72 console = callPackage ./console.nix {};
74 containers = callPackage ./containers.nix {};
76 cube = callPackage ./cube.nix {};
78 data = callPackage ./data.nix {};
80 derive = callPackage ./derive.nix {};
82 descncrunch = callPackage ./descncrunch.nix {};
84 dict = callPackage ./dict.nix {};
86 dom = callPackage ./dom.nix {};
88 electron = callPackage ./electron.nix {};
90 eternal = callPackage ./eternal.nix {};
92 farrp = callPackage ./farrp.nix {};
94 free = callPackage ./free.nix {};
96 fsm = callPackage ./fsm.nix {};
98 glfw = callPackage ./glfw.nix {};
100 graphviz = callPackage ./graphviz.nix {};
102 hamt = callPackage ./hamt.nix {};
104 html = callPackage ./html.nix {};
106 hezarfen = callPackage ./hezarfen.nix {};
108 hrtime = callPackage ./hrtime.nix {};
110 http = callPackage ./http.nix {};
112 http4idris = callPackage ./http4idris.nix {};
114 iaia = callPackage ./iaia.nix {};
116 idrishighlighter = callPackage ./idrishighlighter.nix {};
118 idrisscript = callPackage ./idrisscript.nix {};
120 ipkgparser = callPackage ./ipkgparser.nix {};
122 jheiling-extras = callPackage ./jheiling-extras.nix {};
124 jheiling-js = callPackage ./jheiling-js.nix {};
126 js = callPackage ./js.nix {};
128 lens = callPackage ./lens.nix {};
130 lightyear = callPackage ./lightyear.nix {};
132 logic = callPackage ./logic.nix {};
134 mapping = callPackage ./mapping.nix {};
136 mhd = callPackage ./mhd.nix {};
138 pacman = callPackage ./pacman.nix {};
140 patricia = callPackage ./patricia.nix {};
142 permutations = callPackage ./permutations.nix {};
144 pfds = callPackage ./pfds.nix {};
146 pipes = callPackage ./pipes.nix {};
148 posix = callPackage ./posix.nix {};
150 protobuf = callPackage ./protobuf.nix {};
152 quantities = callPackage ./quantities.nix {};
154 rationals = callPackage ./rationals.nix {};
156 recursion_schemes = callPackage ./recursion_schemes.nix {};
158 refined = callPackage ./refined.nix {};
160 sdl = callPackage ./sdl.nix {};
162 sdl2 = callPackage ./sdl2.nix {};
164 semidirect = callPackage ./semidirect.nix {};
166 setoids = callPackage ./setoids.nix {};
168 smproc = callPackage ./smproc.nix {};
170 snippets = callPackage ./snippets.nix {};
172 software_foundations = callPackage ./software_foundations.nix {};
174 specdris = callPackage ./specdris.nix {};
176 tap = callPackage ./tap.nix {};
178 test = callPackage ./test.nix {};
180 tf-random = callPackage ./tfrandom.nix {};
182 tlhydra = callPackage ./tlhydra.nix {};
184 tomladris = callPackage ./tomladris.nix {};
186 tp = callPackage ./tp.nix {};
188 tparsec = callPackage ./tparsec.nix {};
190 transducers = callPackage ./transducers.nix {};
192 trees = callPackage ./trees.nix {};
194 union_type = callPackage ./union_type.nix {};
196 vdom = callPackage ./vdom.nix {};
198 vecspace = callPackage ./vecspace.nix {};
200 webgl = callPackage ./webgl.nix {};
202 wl-pprint = callPackage ./wl-pprint.nix {};
204 wyvern = callPackage ./wyvern.nix {};
206 xhr = callPackage ./xhr.nix {};
208 yaml = callPackage ./yaml.nix {};
210 yampa = callPackage ./yampa.nix {};
213 in fix' (extends overrides idrisPackages)