-
Notifications
You must be signed in to change notification settings - Fork 0
/
shell.nix
118 lines (112 loc) · 2.17 KB
/
shell.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc802" }:
let
inherit (nixpkgs) pkgs;
ghc = pkgs.haskell.packages.${compiler}.ghcWithHoogle (ps: with ps;
[# ghc-mod
hspec
unbound
ghc-typelits-presburger
presburger
equational-reasoning
bound
graph-rewriting
hspec-megaparsec
hspec-laws
hspec-expectations-lens
hspec-checkers
hspec-smallcheck
freer-effects
lens
megaparsec
hoopl
constraints
QuickCheck
ansi-wl-pprint
criterion
haskintex
freer
text
plan-applicative
text-format
annotated-wl-pprint
cabal-install
mainland-pretty
trifecta
alex
zippers
# compdata
fgl
doctest
hslogger
happy
monad-logger
hlint
unordered-containers
ekg
haskeline
#ivory
#smartcheck
singletons
sbv
pipes
tasty
optparse-applicative
configurator
data-category
llvm-hs-pure
# llvm-hs
# llvm-hs-typed
# llvm-hs-pretty
megaparsec
idris
structured-haskell-mode
]);
emacsWithMyPackages = let customEmacsPackages = pkgs.emacsPackagesNg.overrideScope (super: self: {
emacs = pkgs.emacs.override { withGTK2 = true; withGTK3 = false; }; }); in
customEmacsPackages.emacsWithPackages
(epkgs:
(with pkgs.emacsPackagesNg; [
# ghc-mod
org
haskell-mode
structured-haskell-mode
rainbow-delimiters
company-ghc
company
color-theme-solarized
flycheck-haskell
org-plus-contrib
idris-mode
org-trello
auctex
magit
]) ++ ([pkgs.emacsPackages.proofgeneral_HEAD]));
llvm = pkgs.llvm_39;
git = pkgs.git;
cabal2nix = pkgs.cabal2nix;
busybox = pkgs.busybox;
sphinx = pkgs.pythonPackages.sphinx;
coqPackages = pkgs.coqPackages_8_6;
in
pkgs.stdenv.mkDerivation {
name = "haskell-env-1";
buildInputs = [ghc
emacsWithMyPackages
sphinx
llvm
# polly
git
cabal2nix
busybox
pkgs.libressl
#coqPackages.ssreflect
#coqPackages.mathcomp
# pkgs.coqPackages.contribs.all
# coqPackages.domains
#coqPackages.QuickChick
#coqPackages.coq-ext-lib
# coqPackages.unimath
pkgs.compcert
];
shellHook = "eval $(egrep ^export ${ghc}/bin/ghc)";
}