diff options
167 files changed, 2 insertions, 10157 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee1bf9 --- /dev/null +++ b/.gitignore | |||
@@ -0,0 +1 @@ | |||
.stack-work | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens deleted file mode 100755 index 9ca59a9..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/Main.hi b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/Main.hi deleted file mode 100644 index 9e3e3a5..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/Main.hi +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/Main.o b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/Main.o deleted file mode 100644 index 1dadf1b..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/Main.o +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/src/Main.dump-hi b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/src/Main.dump-hi deleted file mode 100644 index f380580..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/8queens-tmp/src/Main.dump-hi +++ /dev/null | |||
@@ -1,2517 +0,0 @@ | |||
1 | |||
2 | ==================== FINAL INTERFACE ==================== | ||
3 | 2019-05-29 23:57:35.287700482 UTC | ||
4 | |||
5 | interface main:Main 8065 | ||
6 | interface hash: 47c5f1b0ac88d7964b8d3ff4b4c5ad24 | ||
7 | ABI hash: 6a25402bbb47d2db70b5fccc80b8cd10 | ||
8 | export-list hash: 14799b7f7205366154cf4737867653f6 | ||
9 | orphan hash: 544728fd6478f60c87fd98f72c918bf5 | ||
10 | flag hash: 1638722aa932cf70c70adfffb210f5e7 | ||
11 | opt_hash: 6faf2de08de32d19db9870899d88e59a | ||
12 | hpc_hash: 93b885adfe0da089cdf634904fd59f71 | ||
13 | plugin_hash: ad164012d6b1e14942349d58b1132007 | ||
14 | sig of: Nothing | ||
15 | used TH splices: False | ||
16 | where | ||
17 | exports: | ||
18 | Main.allPositions | ||
19 | Main.allops | ||
20 | Main.applyop | ||
21 | Main.applyops | ||
22 | Main.diag | ||
23 | Main.diag'' | ||
24 | Main.getColL | ||
25 | Main.getDiagL | ||
26 | Main.getRowColDiag | ||
27 | Main.getRowL | ||
28 | Main.initBoard | ||
29 | Main.isWinnable | ||
30 | Main.isWinnable' | ||
31 | Main.lo8 | ||
32 | Main.main | ||
33 | Main.mapDiag | ||
34 | Main.mapQueensPath | ||
35 | Main.mapRowColDiag | ||
36 | Main.markX | ||
37 | Main.nextAvail | ||
38 | Main.nextOpen | ||
39 | Main.onBoard | ||
40 | Main.openPositions | ||
41 | Main.ops | ||
42 | Main.placeQueen | ||
43 | Main.placeQueen' | ||
44 | Main.queenAllowed | ||
45 | Main.s | ||
46 | Main.scanBoard | ||
47 | Main.solve | ||
48 | Main.w | ||
49 | Main.winnable | ||
50 | Main.winners | ||
51 | Main.winners' | ||
52 | Main.Square{Main.O Main.Qu Main.T Main.X} | ||
53 | module dependencies: | ||
54 | package dependencies: StateVar-1.1.1.1 adjunctions-4.4 | ||
55 | array-0.5.3.0 base-4.12.0.0 base-orphans-0.8.1 bifunctors-5.5.4 | ||
56 | binary-0.8.6.0 bytes-0.15.5 bytestring-0.10.8.2 call-stack-0.1.0 | ||
57 | cereal-0.5.8.0 comonad-5.0.5 containers-0.6.0.1 contravariant-1.5.1 | ||
58 | deepseq-1.4.4.0 distributive-0.6 exceptions-0.10.2 free-5.1.1 | ||
59 | ghc-boot-th-8.6.5 ghc-prim-0.5.3 hashable-1.2.7.0 | ||
60 | integer-gmp-1.0.2.0 integer-logarithms-1.0.3 kan-extensions-5.2 | ||
61 | lens-4.17.1 linear-1.20.9 loop-0.3.0 matrix-0.3.6.1 mtl-2.2.2 | ||
62 | pretty-1.1.3.6 primitive-0.6.4.0 profunctors-5.3 random-1.1 | ||
63 | reflection-2.1.4 scientific-0.3.6.2 semigroupoids-5.3.2 stm-2.5.0.0 | ||
64 | tagged-0.8.6 template-haskell-2.14.0.0 text-1.2.3.1 | ||
65 | th-abstraction-0.2.11.0 time-1.8.0.2 transformers-0.5.6.2 | ||
66 | transformers-base-0.4.5.2 transformers-compat-0.6.5 | ||
67 | unordered-containers-0.2.9.0 vector-0.12.0.3 | ||
68 | orphans: time-1.8.0.2:Data.Time.Clock.TAI | ||
69 | reflection-2.1.4:Data.Reflection | ||
70 | vector-0.12.0.3:Data.Vector.Unboxed stm-2.5.0.0:Control.Monad.STM | ||
71 | hashable-1.2.7.0:Data.Hashable.Generic text-1.2.3.1:Data.Text.Lazy | ||
72 | text-1.2.3.1:Data.Text binary-0.8.6.0:Data.Binary.Generic | ||
73 | bytestring-0.10.8.2:Data.ByteString.Builder | ||
74 | text-1.2.3.1:Data.Text.Show linear-1.20.9:Linear.Instances | ||
75 | vector-0.12.0.3:Data.Vector.Fusion.Bundle | ||
76 | transformers-0.5.6.2:Control.Monad.Trans.Error | ||
77 | time-1.8.0.2:Data.Time.Format.Parse | ||
78 | time-1.8.0.2:Data.Time.LocalTime.Internal.ZonedTime | ||
79 | time-1.8.0.2:Data.Time.LocalTime.Internal.LocalTime | ||
80 | time-1.8.0.2:Data.Time.Calendar.Gregorian base-4.12.0.0:GHC.Float | ||
81 | base-4.12.0.0:GHC.Base | ||
82 | family instance modules: adjunctions-4.4:Data.Functor.Rep | ||
83 | base-4.12.0.0:Control.Applicative base-4.12.0.0:Data.Complex | ||
84 | base-4.12.0.0:Data.Functor.Compose base-4.12.0.0:Data.Functor.Const | ||
85 | base-4.12.0.0:Data.Functor.Identity | ||
86 | base-4.12.0.0:Data.Functor.Product base-4.12.0.0:Data.Functor.Sum | ||
87 | base-4.12.0.0:Data.Monoid base-4.12.0.0:Data.Semigroup | ||
88 | base-4.12.0.0:Data.Semigroup.Internal base-4.12.0.0:Data.Version | ||
89 | base-4.12.0.0:Data.Void base-4.12.0.0:GHC.Exts | ||
90 | base-4.12.0.0:GHC.Generics base-4.12.0.0:GHC.IO.Exception | ||
91 | bifunctors-5.5.4:Data.Bifunctor.Biff | ||
92 | bifunctors-5.5.4:Data.Bifunctor.Clown | ||
93 | bifunctors-5.5.4:Data.Bifunctor.Fix | ||
94 | bifunctors-5.5.4:Data.Bifunctor.Flip | ||
95 | bifunctors-5.5.4:Data.Bifunctor.Join | ||
96 | bifunctors-5.5.4:Data.Bifunctor.Joker | ||
97 | bifunctors-5.5.4:Data.Bifunctor.Product | ||
98 | bifunctors-5.5.4:Data.Bifunctor.Sum | ||
99 | bifunctors-5.5.4:Data.Bifunctor.Tannen | ||
100 | bifunctors-5.5.4:Data.Bifunctor.Wrapped bytes-0.15.5:Data.Bytes.Get | ||
101 | bytes-0.15.5:Data.Bytes.Signed bytes-0.15.5:Data.Bytes.VarInt | ||
102 | containers-0.6.0.1:Data.IntMap.Internal | ||
103 | containers-0.6.0.1:Data.IntSet.Internal | ||
104 | containers-0.6.0.1:Data.Map.Internal | ||
105 | containers-0.6.0.1:Data.Sequence.Internal | ||
106 | containers-0.6.0.1:Data.Set.Internal containers-0.6.0.1:Data.Tree | ||
107 | free-5.1.1:Control.Comonad.Cofree | ||
108 | free-5.1.1:Control.Comonad.Trans.Cofree | ||
109 | free-5.1.1:Control.Monad.Free free-5.1.1:Control.Monad.Trans.Free | ||
110 | ghc-boot-th-8.6.5:GHC.ForeignSrcLang.Type | ||
111 | ghc-boot-th-8.6.5:GHC.LanguageExtensions.Type | ||
112 | kan-extensions-5.2:Data.Functor.Day | ||
113 | kan-extensions-5.2:Data.Functor.Yoneda lens-4.17.1:Control.Lens.At | ||
114 | lens-4.17.1:Control.Lens.Internal.Indexed | ||
115 | lens-4.17.1:Control.Lens.Reified lens-4.17.1:Control.Lens.Tuple | ||
116 | lens-4.17.1:Control.Lens.Wrapped lens-4.17.1:Control.Lens.Zoom | ||
117 | linear-1.20.9:Linear.V linear-1.20.9:Linear.V1 | ||
118 | linear-1.20.9:Linear.V2 linear-1.20.9:Linear.V3 | ||
119 | matrix-0.3.6.1:Data.Matrix | ||
120 | pretty-1.1.3.6:Text.PrettyPrint.Annotated.HughesPJ | ||
121 | pretty-1.1.3.6:Text.PrettyPrint.HughesPJ | ||
122 | primitive-0.6.4.0:Control.Monad.Primitive | ||
123 | primitive-0.6.4.0:Data.Primitive.Array | ||
124 | primitive-0.6.4.0:Data.Primitive.ByteArray | ||
125 | primitive-0.6.4.0:Data.Primitive.PrimArray | ||
126 | primitive-0.6.4.0:Data.Primitive.SmallArray | ||
127 | primitive-0.6.4.0:Data.Primitive.UnliftedArray | ||
128 | profunctors-5.3:Data.Profunctor.Composition | ||
129 | profunctors-5.3:Data.Profunctor.Rep tagged-0.8.6:Data.Tagged | ||
130 | template-haskell-2.14.0.0:Language.Haskell.TH.Syntax | ||
131 | text-1.2.3.1:Data.Text text-1.2.3.1:Data.Text.Lazy | ||
132 | th-abstraction-0.2.11.0:Language.Haskell.TH.Datatype | ||
133 | unordered-containers-0.2.9.0:Data.HashMap.Base | ||
134 | unordered-containers-0.2.9.0:Data.HashSet | ||
135 | vector-0.12.0.3:Data.Vector vector-0.12.0.3:Data.Vector.Primitive | ||
136 | vector-0.12.0.3:Data.Vector.Storable | ||
137 | vector-0.12.0.3:Data.Vector.Unboxed | ||
138 | vector-0.12.0.3:Data.Vector.Unboxed.Base | ||
139 | import -/ base-4.12.0.0:Control.Applicative 2ae514eb141d45774730765c61bb41c0 | ||
140 | import -/ base-4.12.0.0:Data.Foldable efb37371da929e7bc88d896298d2d979 | ||
141 | import -/ base-4.12.0.0:Data.List 17d0c71c557e42abe196f130788fd997 | ||
142 | import -/ base-4.12.0.0:Data.OldList e931cf456dc87f11ee6e6fb153bca23e | ||
143 | import -/ base-4.12.0.0:Data.Tuple c719fc29608fe81c10bee9a1bf1e05ff | ||
144 | import -/ base-4.12.0.0:Foreign.Storable 379843bb6beffe814f03155babd3a2a1 | ||
145 | import -/ base-4.12.0.0:GHC.Base c00b75f0b052d05c55ba6a4dd1c63b26 | ||
146 | import -/ base-4.12.0.0:GHC.Err ea5e313ef4146b40b5d8b27aa168e736 | ||
147 | import -/ base-4.12.0.0:GHC.List 4014a3c8a3b7c31c8325f6bcf1feea4a | ||
148 | import -/ base-4.12.0.0:GHC.Num c2039f03637c68f47b0bbff4c18ec616 | ||
149 | import -/ base-4.12.0.0:GHC.Show 838a5d039379d82d9626aae53dfce276 | ||
150 | import -/ base-4.12.0.0:Prelude 3c779dfd6448bdd8e234c336802c2acb | ||
151 | import -/ base-4.12.0.0:System.IO dd4f3cfe73b94b7cae46a4ca98a3f09f | ||
152 | import -/ ghc-prim-0.5.3:GHC.Classes 0f6fd7d7db53fc48f6e1f01803cc6c9d | ||
153 | import -/ ghc-prim-0.5.3:GHC.Types 57064c9f957b09bc2e360061ad5cae0b | ||
154 | import -/ lens-4.17.1:Control.Lens 3653945a21240fa9b051785ff6456731 | ||
155 | import -/ linear-1.20.9:Linear.V2 d56aa147d201434486a0d7613b12118c | ||
156 | import -/ linear-1.20.9:Linear.V3 1dcebeca95d66b9152a160ce7257a571 | ||
157 | import -/ matrix-0.3.6.1:Data.Matrix 352cbb223ecd1589261f36f7ff17bc9c | ||
158 | import -/ random-1.1:System.Random c6898761a03910f08acbe56f79c5fa96 | ||
159 | import -/ vector-0.12.0.3:Data.Vector 2f7b7a0ec8b90d2d82b017d1a022e0b2 | ||
160 | 636ccc849665ce7c3156c440898486e4 | ||
161 | $fEqSquare :: GHC.Classes.Eq Main.Square | ||
162 | DFunId | ||
163 | {- HasNoCafRefs, Strictness: m, Inline: CONLIKE, | ||
164 | Unfolding: DFun:. | ||
165 | @ Main.Square Main.$fEqSquare_$c== Main.$fEqSquare_$c/= -} | ||
166 | 636ccc849665ce7c3156c440898486e4 | ||
167 | $fEqSquare_$c/= :: Main.Square -> Main.Square -> GHC.Types.Bool | ||
168 | {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>, | ||
169 | Inline: (sat-args=2), | ||
170 | Unfolding: InlineRule (2, False, False) | ||
171 | (\ (x :: Main.Square) (y :: Main.Square) -> | ||
172 | case x of wild { | ||
173 | Main.X | ||
174 | -> case y of wild1 { | ||
175 | DEFAULT -> GHC.Types.True Main.X -> GHC.Types.False } | ||
176 | Main.Qu | ||
177 | -> case y of wild1 { | ||
178 | DEFAULT -> GHC.Types.True Main.Qu -> GHC.Types.False } | ||
179 | Main.O | ||
180 | -> case y of wild1 { | ||
181 | DEFAULT -> GHC.Types.True Main.O -> GHC.Types.False } | ||
182 | Main.T | ||
183 | -> case y of wild1 { | ||
184 | DEFAULT -> GHC.Types.True Main.T -> GHC.Types.False } }) -} | ||
185 | 636ccc849665ce7c3156c440898486e4 | ||
186 | $fEqSquare_$c== :: Main.Square -> Main.Square -> GHC.Types.Bool | ||
187 | {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>, | ||
188 | Unfolding: (\ (ds :: Main.Square) (ds1 :: Main.Square) -> | ||
189 | case ds of wild { | ||
190 | Main.X | ||
191 | -> case ds1 of wild1 { | ||
192 | DEFAULT -> GHC.Types.False Main.X -> GHC.Types.True } | ||
193 | Main.Qu | ||
194 | -> case ds1 of wild1 { | ||
195 | DEFAULT -> GHC.Types.False Main.Qu -> GHC.Types.True } | ||
196 | Main.O | ||
197 | -> case ds1 of wild1 { | ||
198 | DEFAULT -> GHC.Types.False Main.O -> GHC.Types.True } | ||
199 | Main.T | ||
200 | -> case ds1 of wild1 { | ||
201 | DEFAULT -> GHC.Types.False Main.T -> GHC.Types.True } }) -} | ||
202 | 636ccc849665ce7c3156c440898486e4 | ||
203 | $fShowSquare :: GHC.Show.Show Main.Square | ||
204 | DFunId | ||
205 | {- Strictness: m, Inline: CONLIKE, | ||
206 | Unfolding: DFun:. | ||
207 | @ Main.Square | ||
208 | Main.$fShowSquare_$cshowsPrec | ||
209 | Main.$fShowSquare_$cshow | ||
210 | Main.$fShowSquare_$cshowList -} | ||
211 | 4034c5a8da4227c6e128ffb263a94e31 | ||
212 | $fShowSquare1 :: [GHC.Types.Char] | ||
213 | {- Unfolding: (GHC.CString.unpackCString# Main.$fShowSquare2) -} | ||
214 | 83314de2c755664d070f9c06df865e32 | ||
215 | $fShowSquare2 :: GHC.Prim.Addr# | ||
216 | {- HasNoCafRefs, Unfolding: ("T"#) -} | ||
217 | 49ff713629ce3b98fedf0d710cd5834f | ||
218 | $fShowSquare3 :: [GHC.Types.Char] | ||
219 | {- Unfolding: (GHC.CString.unpackCString# Main.$fShowSquare4) -} | ||
220 | 15c027c2ef0f750ada425ea516d40011 | ||
221 | $fShowSquare4 :: GHC.Prim.Addr# | ||
222 | {- HasNoCafRefs, Unfolding: ("O"#) -} | ||
223 | a85da46c93392bfafc9def26682718a0 | ||
224 | $fShowSquare5 :: [GHC.Types.Char] | ||
225 | {- Unfolding: (GHC.CString.unpackCString# Main.$fShowSquare6) -} | ||
226 | 2ab4bcdf43d08eb2889562449df03bd4 | ||
227 | $fShowSquare6 :: GHC.Prim.Addr# | ||
228 | {- HasNoCafRefs, Unfolding: ("Qu"#) -} | ||
229 | e23edf746cf45789786f8cf7d218e23c | ||
230 | $fShowSquare7 :: [GHC.Types.Char] | ||
231 | {- Unfolding: (GHC.CString.unpackCString# Main.$fShowSquare8) -} | ||
232 | 0f48faaafde9dbcb6bdc9acd532c3d1f | ||
233 | $fShowSquare8 :: GHC.Prim.Addr# | ||
234 | {- HasNoCafRefs, Unfolding: ("X"#) -} | ||
235 | 636ccc849665ce7c3156c440898486e4 | ||
236 | $fShowSquare_$cshow :: Main.Square -> GHC.Base.String | ||
237 | {- Arity: 1, Strictness: <S,1*U>, | ||
238 | Unfolding: InlineRule (1, True, False) | ||
239 | (\ (x :: Main.Square) -> | ||
240 | case x of wild { | ||
241 | Main.X -> Main.$fShowSquare7 | ||
242 | Main.Qu -> Main.$fShowSquare5 | ||
243 | Main.O -> Main.$fShowSquare3 | ||
244 | Main.T -> Main.$fShowSquare1 }) -} | ||
245 | 636ccc849665ce7c3156c440898486e4 | ||
246 | $fShowSquare_$cshowList :: [Main.Square] -> GHC.Show.ShowS | ||
247 | {- Arity: 2, Strictness: <S,1*U><L,U>, | ||
248 | Unfolding: InlineRule (2, True, False) | ||
249 | (\ (ls :: [Main.Square]) (s1 :: GHC.Base.String) -> | ||
250 | GHC.Show.showList__ @ Main.Square Main.$w$cshowsPrec ls s1) -} | ||
251 | 636ccc849665ce7c3156c440898486e4 | ||
252 | $fShowSquare_$cshowsPrec :: | ||
253 | GHC.Types.Int -> Main.Square -> GHC.Show.ShowS | ||
254 | {- Arity: 3, Strictness: <L,A><S,1*U><L,1*U>, Inline: [2], | ||
255 | Unfolding: InlineRule (3, True, True) | ||
256 | (\ (w1 :: GHC.Types.Int) | ||
257 | (w2 :: Main.Square) | ||
258 | (w3 :: GHC.Base.String) -> | ||
259 | Main.$w$cshowsPrec w2 w3) -} | ||
260 | 16f9cbadd6cc253275bae13256416fc2 | ||
261 | $s$fEq(,) :: GHC.Classes.Eq (GHC.Types.Int, GHC.Types.Int) | ||
262 | {- HasNoCafRefs, Strictness: m, Inline: CONLIKE, | ||
263 | Unfolding: DFun:. | ||
264 | @ (GHC.Types.Int, GHC.Types.Int) | ||
265 | (GHC.Classes.$fEq(,)_$c== | ||
266 | @ GHC.Types.Int | ||
267 | @ GHC.Types.Int | ||
268 | GHC.Classes.$fEqInt | ||
269 | GHC.Classes.$fEqInt) | ||
270 | Main.$s$fEq(,)_$s$fEq(,)_$c/= -} | ||
271 | d9c29de69e24759049df94d820948480 | ||
272 | $s$fEq(,)_$s$fEq(,)_$c/= :: | ||
273 | (GHC.Types.Int, GHC.Types.Int) | ||
274 | -> (GHC.Types.Int, GHC.Types.Int) -> GHC.Types.Bool | ||
275 | {- Arity: 2, HasNoCafRefs, | ||
276 | Strictness: <S(S(S)L),1*U(1*U(U),1*U(U))><S(S(S)L),1*U(1*U(U),1*U(U))>, | ||
277 | Inline: (sat-args=2), | ||
278 | Unfolding: InlineRule (2, False, False) | ||
279 | (\ (x :: (GHC.Types.Int, GHC.Types.Int)) | ||
280 | (y :: (GHC.Types.Int, GHC.Types.Int)) -> | ||
281 | case x of wild { (,) a1 a2 -> | ||
282 | case y of wild1 { (,) b1 b2 -> | ||
283 | case GHC.Classes.eqInt a1 b1 of wild2 { | ||
284 | GHC.Types.False -> GHC.Types.True | ||
285 | GHC.Types.True | ||
286 | -> case GHC.Classes.eqInt a2 b2 of wild3 { | ||
287 | GHC.Types.False -> GHC.Types.True | ||
288 | GHC.Types.True -> GHC.Types.False } } } }) -} | ||
289 | a5aa05036c6055a96ceac3d767cdd7d3 | ||
290 | $ssubtract :: GHC.Types.Int -> GHC.Types.Int -> GHC.Types.Int | ||
291 | {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><S(S),1*U(U)>m, | ||
292 | Inline: (sat-args=2), | ||
293 | Unfolding: InlineRule (2, False, True) | ||
294 | (\ (x :: GHC.Types.Int) (y :: GHC.Types.Int) -> | ||
295 | GHC.Num.$fNumInt_$c- y x) -} | ||
296 | 4b1b8958426064b7d9309d9d2fdefe7c | ||
297 | $ssubtract1 :: | ||
298 | GHC.Integer.Type.Integer | ||
299 | -> GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer | ||
300 | {- Arity: 2, Strictness: <S,U><S,1*U>, Inline: (sat-args=2), | ||
301 | Unfolding: InlineRule (2, False, True) | ||
302 | (\ (x :: GHC.Integer.Type.Integer) | ||
303 | (y :: GHC.Integer.Type.Integer) -> | ||
304 | GHC.Integer.Type.minusInteger y x) -} | ||
305 | 6611e1da6e72881a60833105d1d890e3 | ||
306 | $tc'O :: GHC.Types.TyCon | ||
307 | {- HasNoCafRefs, Strictness: m, | ||
308 | Unfolding: (GHC.Types.TyCon | ||
309 | 9675801932394384788## | ||
310 | 6712316648948115877## | ||
311 | Main.$trModule | ||
312 | Main.$tc'O2 | ||
313 | 0# | ||
314 | Main.$tc'O1) -} | ||
315 | be5d1f5fee02b88e4232cb81c2af2579 | ||
316 | $tc'O1 :: GHC.Types.KindRep | ||
317 | {- HasNoCafRefs, Strictness: m1, Inline: [~] -} | ||
318 | ff261ad5b24f7fdd4296a33c047646a3 | ||
319 | $tc'O2 :: GHC.Types.TrName | ||
320 | {- HasNoCafRefs, Strictness: m1, | ||
321 | Unfolding: (GHC.Types.TrNameS Main.$tc'O3) -} | ||
322 | ef99b4220de234abd7b20254f6eb8a41 | ||
323 | $tc'O3 :: GHC.Prim.Addr# | ||
324 | {- HasNoCafRefs, Unfolding: ("'O"#) -} | ||
325 | ee107ec2d080306c47caa0ad45ca2789 | ||
326 | $tc'Qu :: GHC.Types.TyCon | ||
327 | {- HasNoCafRefs, Strictness: m, | ||
328 | Unfolding: (GHC.Types.TyCon | ||
329 | 17979074984894399304## | ||
330 | 18119058677283552676## | ||
331 | Main.$trModule | ||
332 | Main.$tc'Qu1 | ||
333 | 0# | ||
334 | Main.$tc'O1) -} | ||
335 | aa91b9b113b846476e7a8ca91ca447fa | ||
336 | $tc'Qu1 :: GHC.Types.TrName | ||
337 | {- HasNoCafRefs, Strictness: m1, | ||
338 | Unfolding: (GHC.Types.TrNameS Main.$tc'Qu2) -} | ||
339 | ad8c06afed71d1de83408f6e00133f92 | ||
340 | $tc'Qu2 :: GHC.Prim.Addr# | ||
341 | {- HasNoCafRefs, Unfolding: ("'Qu"#) -} | ||
342 | 41821a7de349be54ac630d2049b64a42 | ||
343 | $tc'T :: GHC.Types.TyCon | ||
344 | {- HasNoCafRefs, Strictness: m, | ||
345 | Unfolding: (GHC.Types.TyCon | ||
346 | 15564654814037795574## | ||
347 | 9702549696965301893## | ||
348 | Main.$trModule | ||
349 | Main.$tc'T1 | ||
350 | 0# | ||
351 | Main.$tc'O1) -} | ||
352 | 82969608b13a211f112632f79676d867 | ||
353 | $tc'T1 :: GHC.Types.TrName | ||
354 | {- HasNoCafRefs, Strictness: m1, | ||
355 | Unfolding: (GHC.Types.TrNameS Main.$tc'T2) -} | ||
356 | 187cc49652b02277d0b99ae5ea1a5fd9 | ||
357 | $tc'T2 :: GHC.Prim.Addr# | ||
358 | {- HasNoCafRefs, Unfolding: ("'T"#) -} | ||
359 | 581a21f4a7e2a1d9b2996ff8c471b022 | ||
360 | $tc'X :: GHC.Types.TyCon | ||
361 | {- HasNoCafRefs, Strictness: m, | ||
362 | Unfolding: (GHC.Types.TyCon | ||
363 | 5225325308912582631## | ||
364 | 14983302646393556978## | ||
365 | Main.$trModule | ||
366 | Main.$tc'X1 | ||
367 | 0# | ||
368 | Main.$tc'O1) -} | ||
369 | 3a2176738fada4904e3cf07296e7fdfd | ||
370 | $tc'X1 :: GHC.Types.TrName | ||
371 | {- HasNoCafRefs, Strictness: m1, | ||
372 | Unfolding: (GHC.Types.TrNameS Main.$tc'X2) -} | ||
373 | 568425ffbb1010e85481e6073e42496e | ||
374 | $tc'X2 :: GHC.Prim.Addr# | ||
375 | {- HasNoCafRefs, Unfolding: ("'X"#) -} | ||
376 | dbf71b2385a61bc04046efc2d3fd1efc | ||
377 | $tcSquare :: GHC.Types.TyCon | ||
378 | {- HasNoCafRefs, Strictness: m, | ||
379 | Unfolding: (GHC.Types.TyCon | ||
380 | 10164887948691462873## | ||
381 | 15713138518001860047## | ||
382 | Main.$trModule | ||
383 | Main.$tcSquare1 | ||
384 | 0# | ||
385 | GHC.Types.krep$*) -} | ||
386 | 375635f77e678ce251c5463aacfeeccd | ||
387 | $tcSquare1 :: GHC.Types.TrName | ||
388 | {- HasNoCafRefs, Strictness: m1, | ||
389 | Unfolding: (GHC.Types.TrNameS Main.$tcSquare2) -} | ||
390 | 28ba19c10877e3323cf2c279f530ca96 | ||
391 | $tcSquare2 :: GHC.Prim.Addr# | ||
392 | {- HasNoCafRefs, Unfolding: ("Square"#) -} | ||
393 | be86c9d078d3acbf19ba91fe74a24273 | ||
394 | $trModule :: GHC.Types.Module | ||
395 | {- HasNoCafRefs, Strictness: m, | ||
396 | Unfolding: (GHC.Types.Module Main.$trModule3 Main.$trModule1) -} | ||
397 | b09d86f2c49dd5176b544d8d13ddb6c5 | ||
398 | $trModule1 :: GHC.Types.TrName | ||
399 | {- HasNoCafRefs, Strictness: m1, | ||
400 | Unfolding: (GHC.Types.TrNameS Main.$trModule2) -} | ||
401 | e5875966b74dad2d29772660b8a75e33 | ||
402 | $trModule2 :: GHC.Prim.Addr# | ||
403 | {- HasNoCafRefs, Unfolding: ("Main"#) -} | ||
404 | 23b03bd7d075a00f5ad1ee10e6add7b8 | ||
405 | $trModule3 :: GHC.Types.TrName | ||
406 | {- HasNoCafRefs, Strictness: m1, | ||
407 | Unfolding: (GHC.Types.TrNameS Main.$trModule4) -} | ||
408 | d026be77cb9ced20e35a61514e0458aa | ||
409 | $trModule4 :: GHC.Prim.Addr# | ||
410 | {- HasNoCafRefs, Unfolding: ("main"#) -} | ||
411 | 636ccc849665ce7c3156c440898486e4 | ||
412 | $w$cshowsPrec :: Main.Square -> GHC.Base.String -> GHC.Base.String | ||
413 | {- Arity: 2, Strictness: <S,1*U><L,1*U>, Inline: [2], | ||
414 | Unfolding: (\ (w1 :: Main.Square) (w2 :: GHC.Base.String) -> | ||
415 | case w1 of wild { | ||
416 | Main.X -> GHC.Base.++ @ GHC.Types.Char Main.$fShowSquare7 w2 | ||
417 | Main.Qu -> GHC.Base.++ @ GHC.Types.Char Main.$fShowSquare5 w2 | ||
418 | Main.O -> GHC.Base.++ @ GHC.Types.Char Main.$fShowSquare3 w2 | ||
419 | Main.T -> GHC.Base.++ @ GHC.Types.Char Main.$fShowSquare1 w2 }) -} | ||
420 | 98dbe0ea72c75ba926317b7f7608e4d8 | ||
421 | $wdiag :: | ||
422 | GHC.Prim.Int# | ||
423 | -> GHC.Types.Int | ||
424 | -> Data.Matrix.Matrix a | ||
425 | -> [(GHC.Types.Int, GHC.Types.Int)] | ||
426 | {- Arity: 3, HasNoCafRefs, | ||
427 | Strictness: <S,U><L,U(U)><L,U(U,U,A,A,A,A)>, Inline: [2], | ||
428 | Unfolding: (\ @ a | ||
429 | (ww :: GHC.Prim.Int#) | ||
430 | (ww1 :: GHC.Types.Int) | ||
431 | (w1 :: Data.Matrix.Matrix a) -> | ||
432 | let { | ||
433 | $wc :: (GHC.Types.Int -> GHC.Types.Int) | ||
434 | -> (GHC.Types.Int -> GHC.Types.Int) | ||
435 | -> [(GHC.Types.Int, GHC.Types.Int)] | ||
436 | {- Arity: 2, Strictness: <L,C(U(U))><L,C(U(U))>, Inline: [2] -} | ||
437 | = \ (ww2 :: GHC.Types.Int -> GHC.Types.Int) | ||
438 | (ww3 :: GHC.Types.Int -> GHC.Types.Int)[OneShot] -> | ||
439 | letrec { | ||
440 | $wgo2 :: GHC.Prim.Int# | ||
441 | -> GHC.Types.Int -> [(GHC.Types.Int, GHC.Types.Int)] | ||
442 | {- Arity: 2, Strictness: <S,U><L,1*U(U)>, Inline: [2] -} | ||
443 | = \ (ww4 :: GHC.Prim.Int#) (ww5 :: GHC.Types.Int) -> | ||
444 | case GHC.Prim.>=# ww4 1# of lwild { | ||
445 | DEFAULT -> GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int) | ||
446 | 1# | ||
447 | -> case w1 of wild { Data.Matrix.M dt dt1 dt2 dt3 dt4 ds1 -> | ||
448 | case GHC.Prim.<=# ww4 dt of lwild1 { | ||
449 | DEFAULT -> GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int) | ||
450 | 1# | ||
451 | -> case ww5 of wild1 { GHC.Types.I# x -> | ||
452 | case GHC.Prim.>=# x 1# of lwild2 { | ||
453 | DEFAULT -> GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int) | ||
454 | 1# | ||
455 | -> case GHC.Prim.<=# x dt1 of lwild3 { | ||
456 | DEFAULT -> GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int) | ||
457 | 1# | ||
458 | -> let { | ||
459 | i :: GHC.Types.Int = GHC.Types.I# ww4 | ||
460 | } in | ||
461 | GHC.Types.: | ||
462 | @ (GHC.Types.Int, GHC.Types.Int) | ||
463 | (i, wild1) | ||
464 | (case ww2 i of ww6 { GHC.Types.I# ww7 -> | ||
465 | $wgo2 ww7 (ww3 wild1) }) } } } } } } | ||
466 | } in | ||
467 | $wgo2 ww ww1 | ||
468 | } in | ||
469 | GHC.Base.++ | ||
470 | @ (GHC.Types.Int, GHC.Types.Int) | ||
471 | ($wc Main.diag_a Main.diag_a) | ||
472 | (GHC.Base.++ | ||
473 | @ (GHC.Types.Int, GHC.Types.Int) | ||
474 | ($wc Main.diag_a Main.diag_b) | ||
475 | (GHC.Base.++ | ||
476 | @ (GHC.Types.Int, GHC.Types.Int) | ||
477 | ($wc Main.diag_b Main.diag_a) | ||
478 | (GHC.Base.++ | ||
479 | @ (GHC.Types.Int, GHC.Types.Int) | ||
480 | ($wc Main.diag_b Main.diag_b) | ||
481 | (GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int)))))) -} | ||
482 | 2caee5b49997123c1e51e55e4c8a1465 | ||
483 | $wdiag'' :: | ||
484 | (GHC.Num.Num b, GHC.Enum.Enum b, GHC.Num.Num a) => | ||
485 | (a -> a -> [a]) -> a -> b -> [(a, b)] | ||
486 | {- Arity: 6, HasNoCafRefs, | ||
487 | Strictness: <L,U(A,A,A,A,A,A,C(U))><L,U(A,A,A,A,A,A,C(C1(U)),A)><L,U(A,A,A,A,A,A,C(U))><C(C(S)),C(C1(U))><L,U><L,U>, | ||
488 | Inline: [2] -} | ||
489 | e7b8a501f5fd9578b49e2b724f683bc8 | ||
490 | $wgetDiagL :: | ||
491 | GHC.Prim.Int# -> GHC.Types.Int -> Data.Matrix.Matrix a -> [a] | ||
492 | {- Arity: 3, Strictness: <S,U><L,U(U)><L,U(U,U,U,U,U,U(U,A,U))>, | ||
493 | Inline: [2], | ||
494 | Unfolding: (\ @ a | ||
495 | (ww :: GHC.Prim.Int#) | ||
496 | (ww1 :: GHC.Types.Int) | ||
497 | (w1 :: Data.Matrix.Matrix a) -> | ||
498 | GHC.Base.map | ||
499 | @ (GHC.Types.Int, GHC.Types.Int) | ||
500 | @ a | ||
501 | (\ (x :: (GHC.Types.Int, GHC.Types.Int)) -> Data.Matrix.! @ a w1 x) | ||
502 | (Main.$wdiag @ a ww ww1 w1)) -} | ||
503 | 11f7664f4ae85858621cfb12a0fb3060 | ||
504 | $wgetRowColDiag :: | ||
505 | GHC.Types.Int | ||
506 | -> GHC.Types.Int | ||
507 | -> GHC.Prim.Int# | ||
508 | -> GHC.Prim.Int# | ||
509 | -> GHC.Prim.Int# | ||
510 | -> GHC.Prim.Int# | ||
511 | -> GHC.Prim.Int# | ||
512 | -> Data.Vector.Vector a | ||
513 | -> [((GHC.Types.Int, GHC.Types.Int), a)] | ||
514 | {- Arity: 8, | ||
515 | Strictness: <L,U(U)><L,U(U)><L,U><S,U><L,U><L,U><L,U><L,U(U,A,U)>, | ||
516 | Inline: [2] -} | ||
517 | 947a5776179f0c1f40c4a8ad30b9fd68 | ||
518 | $wgo :: [Main.Square] -> GHC.Prim.Int# -> GHC.Types.Int | ||
519 | {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,U>m, | ||
520 | Inline: [2] -} | ||
521 | 715619f66da8ee3670b7cc69be050c49 | ||
522 | $wisWinnable :: | ||
523 | GHC.Prim.Int# -> Data.Matrix.Matrix Main.Square -> GHC.Types.Bool | ||
524 | {- Arity: 2, Strictness: <S,U><L,U(U,U,U,U,U,U(U,A,U))>, | ||
525 | Inline: [2], | ||
526 | Unfolding: (\ (ww :: GHC.Prim.Int#) | ||
527 | (w1 :: Data.Matrix.Matrix Main.Square) -> | ||
528 | case GHC.Base.map | ||
529 | @ GHC.Types.Int | ||
530 | @ GHC.Types.Int | ||
531 | (\ (x :: GHC.Types.Int) -> | ||
532 | Main.$wgo (Main.getRowL @ Main.Square x w1) 0#) | ||
533 | Main.isWinnable1 of wild { | ||
534 | [] -> case GHC.List.maximum2 ret_ty GHC.Types.Bool of {} | ||
535 | : ipv ipv1 | ||
536 | -> case ipv of ww1 { GHC.Types.I# ww2 -> | ||
537 | case GHC.List.$wgo ipv1 ww2 of ww3 { DEFAULT -> | ||
538 | case GHC.Prim.<=# ww ww3 of lwild { | ||
539 | DEFAULT -> GHC.Types.False | ||
540 | 1# | ||
541 | -> case GHC.Base.map | ||
542 | @ GHC.Types.Int | ||
543 | @ GHC.Types.Int | ||
544 | (\ (x :: GHC.Types.Int) -> | ||
545 | Main.$wgo (Main.getColL @ Main.Square x w1) 0#) | ||
546 | Main.isWinnable1 of wild1 { | ||
547 | [] -> case GHC.List.maximum2 ret_ty GHC.Types.Bool of {} | ||
548 | : ipv2 ipv3 | ||
549 | -> case ipv2 of ww4 { GHC.Types.I# ww5 -> | ||
550 | case GHC.List.$wgo ipv3 ww5 of ww6 { DEFAULT -> | ||
551 | GHC.Prim.tagToEnum# | ||
552 | @ GHC.Types.Bool | ||
553 | (GHC.Prim.<=# ww ww6) } } } } } } }) -} | ||
554 | 29e441a9726247d21b17947cf00c4bf0 | ||
555 | $wisWinnable' :: Data.Matrix.Matrix Main.Square -> [GHC.Types.Char] | ||
556 | {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U(U,A,U))>, Inline: [2], | ||
557 | Unfolding: (\ @ p (w1 :: Data.Matrix.Matrix Main.Square) -> | ||
558 | GHC.CString.unpackAppendCString# | ||
559 | Main.isWinnable'2 | ||
560 | (case GHC.Base.map | ||
561 | @ GHC.Types.Int | ||
562 | @ GHC.Types.Int | ||
563 | (\ (x :: GHC.Types.Int) -> | ||
564 | Main.$wgo (Main.getRowL @ Main.Square x w1) 0#) | ||
565 | Main.isWinnable1 of wild { | ||
566 | [] -> case GHC.List.maximum2 ret_ty [GHC.Types.Char] of {} | ||
567 | : ipv ipv1 | ||
568 | -> case ipv of ww { GHC.Types.I# ww1 -> | ||
569 | case GHC.List.$wgo ipv1 ww1 of ww2 { DEFAULT -> | ||
570 | case GHC.Show.$wshowSignedInt | ||
571 | 0# | ||
572 | ww2 | ||
573 | (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 -> | ||
574 | GHC.Base.++_$s++ | ||
575 | @ GHC.Types.Char | ||
576 | (GHC.CString.unpackAppendCString# | ||
577 | Main.isWinnable'1 | ||
578 | (case GHC.Base.map | ||
579 | @ GHC.Types.Int | ||
580 | @ GHC.Types.Int | ||
581 | (\ (x :: GHC.Types.Int) -> | ||
582 | Main.$wgo (Main.getColL @ Main.Square x w1) 0#) | ||
583 | Main.isWinnable1 of wild1 { | ||
584 | [] -> case GHC.List.maximum2 ret_ty [GHC.Types.Char] of {} | ||
585 | : ipv2 ipv3 | ||
586 | -> case ipv2 of ww7 { GHC.Types.I# ww8 -> | ||
587 | case GHC.List.$wgo ipv3 ww8 of ww9 { DEFAULT -> | ||
588 | case GHC.Show.$wshowSignedInt | ||
589 | 0# | ||
590 | ww9 | ||
591 | (GHC.Types.[] | ||
592 | @ GHC.Types.Char) of ww10 { (#,#) ww11 ww12 -> | ||
593 | GHC.Types.: @ GHC.Types.Char ww11 ww12 } } } })) | ||
594 | ww5 | ||
595 | ww6 } } } })) -} | ||
596 | 8247c69c6d133659d4fe141dff51dd1d | ||
597 | $wmapDiag :: | ||
598 | ((GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
599 | -> (GHC.Types.Int, GHC.Types.Int) | ||
600 | -> GHC.Prim.Int# | ||
601 | -> GHC.Prim.Int# | ||
602 | -> GHC.Prim.Int# | ||
603 | -> GHC.Prim.Int# | ||
604 | -> GHC.Prim.Int# | ||
605 | -> Data.Vector.Vector a | ||
606 | -> (# GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, | ||
607 | GHC.Prim.Int#, Data.Vector.Vector a #) | ||
608 | {- Arity: 8, | ||
609 | Strictness: <L,C(C1(U))><L,1*U(1*U(U),U(U))><S,U><S,U><L,U><L,U><L,U><L,U(U,A,U)>, | ||
610 | Inline: [2] -} | ||
611 | e1877462335ec1fb231f811fd98a6bec | ||
612 | $wmapRowColDiag :: | ||
613 | ((GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
614 | -> GHC.Types.Int | ||
615 | -> GHC.Types.Int | ||
616 | -> GHC.Prim.Int# | ||
617 | -> GHC.Prim.Int# | ||
618 | -> GHC.Prim.Int# | ||
619 | -> GHC.Prim.Int# | ||
620 | -> GHC.Prim.Int# | ||
621 | -> Data.Vector.Vector a | ||
622 | -> (# GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, | ||
623 | GHC.Prim.Int#, Data.Vector.Vector a #) | ||
624 | {- Arity: 9, | ||
625 | Strictness: <L,C(C1(U))><L,U(U)><L,U(U)><S,U><S,U><L,U><L,U><L,U><L,U(U,A,U)>, | ||
626 | Inline: [2] -} | ||
627 | d7372687809e115753d3bf6bcf601536 | ||
628 | $wmarkX :: | ||
629 | (GHC.Types.Int, GHC.Types.Int) | ||
630 | -> GHC.Prim.Int# | ||
631 | -> GHC.Prim.Int# | ||
632 | -> GHC.Prim.Int# | ||
633 | -> GHC.Prim.Int# | ||
634 | -> GHC.Prim.Int# | ||
635 | -> Data.Vector.Vector Main.Square | ||
636 | -> (# GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, | ||
637 | GHC.Prim.Int#, Data.Vector.Vector Main.Square #) | ||
638 | {- Arity: 7, | ||
639 | Strictness: <L,1*U(1*U(U),1*U(U))><S,U><S,U><S,U><S,U><S,U><L,1*U(U,U,U)>, | ||
640 | Inline: [2], | ||
641 | Unfolding: (\ (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
642 | (ww :: GHC.Prim.Int#) | ||
643 | (ww1 :: GHC.Prim.Int#) | ||
644 | (ww2 :: GHC.Prim.Int#) | ||
645 | (ww3 :: GHC.Prim.Int#) | ||
646 | (ww4 :: GHC.Prim.Int#) | ||
647 | (ww5 :: Data.Vector.Vector Main.Square) -> | ||
648 | (# ww, ww1, ww2, ww3, ww4, | ||
649 | case ww5 of v2 { Data.Vector.Vector ipv ipv1 ipv2 -> | ||
650 | case GHC.Magic.runRW# | ||
651 | @ ('GHC.Types.TupleRep | ||
652 | '[ 'GHC.Types.TupleRep '[], 'GHC.Types.LiftedRep]) | ||
653 | @ (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
654 | Data.Vector.Vector Main.Square #) | ||
655 | (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] -> | ||
656 | case GHC.Prim.>=# ipv1 0# of lwild { | ||
657 | DEFAULT | ||
658 | -> case Main.markX2 ipv1 | ||
659 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
660 | Data.Vector.Vector Main.Square #) | ||
661 | of {} | ||
662 | 1# | ||
663 | -> case GHC.Prim.newArray# | ||
664 | @ Main.Square | ||
665 | @ (Control.Monad.Primitive.PrimState | ||
666 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
667 | ipv1 | ||
668 | (Data.Vector.Mutable.uninitialised @ Main.Square) | ||
669 | s1 | ||
670 | `cast` | ||
671 | (GHC.Prim.State# | ||
672 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
673 | <GHC.Prim.RealWorld>_N)))_R of ds1 { (#,#) ipv3 ipv4 -> | ||
674 | case GHC.Prim.copyArray# | ||
675 | @ Main.Square | ||
676 | @ (Control.Monad.Primitive.PrimState | ||
677 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
678 | ipv2 | ||
679 | ipv | ||
680 | ipv4 | ||
681 | 0# | ||
682 | ipv1 | ||
683 | ipv3 of s'# { DEFAULT -> | ||
684 | case w1 of wild2 { (,) i j -> | ||
685 | case i of wild3 { GHC.Types.I# x1 -> | ||
686 | case j of wild4 { GHC.Types.I# x2 -> | ||
687 | let { | ||
688 | x :: GHC.Prim.Int# | ||
689 | = GHC.Prim.-# | ||
690 | (GHC.Prim.+# | ||
691 | (GHC.Prim.*# (GHC.Prim.-# (GHC.Prim.+# x1 ww2) 1#) ww4) | ||
692 | (GHC.Prim.+# x2 ww3)) | ||
693 | 1# | ||
694 | } in | ||
695 | case GHC.Prim.>=# x 0# of lwild1 { | ||
696 | DEFAULT | ||
697 | -> case Main.markX1 @ GHC.Prim.RealWorld x ipv1 | ||
698 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
699 | Data.Vector.Vector Main.Square #) | ||
700 | of {} | ||
701 | 1# | ||
702 | -> case GHC.Prim.<# x ipv1 of lwild2 { | ||
703 | DEFAULT | ||
704 | -> case Main.markX1 @ GHC.Prim.RealWorld x ipv1 | ||
705 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
706 | Data.Vector.Vector Main.Square #) | ||
707 | of {} | ||
708 | 1# | ||
709 | -> case GHC.Prim.writeArray# | ||
710 | @ (Control.Monad.Primitive.PrimState | ||
711 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
712 | @ Main.Square | ||
713 | ipv4 | ||
714 | x | ||
715 | Main.X | ||
716 | s'# of s'#1 { DEFAULT -> | ||
717 | case GHC.Prim.unsafeFreezeArray# | ||
718 | @ (Control.Monad.Primitive.PrimState | ||
719 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
720 | @ Main.Square | ||
721 | ipv4 | ||
722 | s'#1 of ds2 { (#,#) ipv5 ipv6 -> | ||
723 | (# ipv5 | ||
724 | `cast` | ||
725 | (GHC.Prim.State# | ||
726 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
727 | <GHC.Prim.RealWorld>_N))_R, | ||
728 | Data.Vector.Vector | ||
729 | @ Main.Square | ||
730 | 0# | ||
731 | ipv1 | ||
732 | ipv6 #) } } } } } } } } } }) of ds1 { (#,#) ipv3 ipv4 -> | ||
733 | ipv4 } } #)) -} | ||
734 | 4085aa77d3428b41dae9dfa21d22b863 | ||
735 | $wnextAvail :: | ||
736 | GHC.Prim.Int# | ||
737 | -> GHC.Prim.Int# | ||
738 | -> GHC.Prim.Int# | ||
739 | -> GHC.Prim.Int# | ||
740 | -> GHC.Prim.Int# | ||
741 | -> Data.Vector.Vector Main.Square | ||
742 | -> (GHC.Types.Int, GHC.Types.Int) | ||
743 | {- Arity: 6, Strictness: <S,U><S,U><S,U><S,U><S,U><L,U(U,A,U)>m, | ||
744 | Inline: [2], | ||
745 | Unfolding: (\ (ww :: GHC.Prim.Int#) | ||
746 | (ww1 :: GHC.Prim.Int#) | ||
747 | (ww2 :: GHC.Prim.Int#) | ||
748 | (ww3 :: GHC.Prim.Int#) | ||
749 | (ww4 :: GHC.Prim.Int#) | ||
750 | (ww5 :: Data.Vector.Vector Main.Square) -> | ||
751 | case Main.nextAvail_$sscanBoard | ||
752 | Main.O | ||
753 | (Data.Matrix.M @ Main.Square ww ww1 ww2 ww3 ww4 ww5) of wild { | ||
754 | [] -> GHC.List.badHead @ (GHC.Types.Int, GHC.Types.Int) | ||
755 | : y ys | ||
756 | -> case y of ww6 { (,) ww7 ww8 -> | ||
757 | letrec { | ||
758 | go1 :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)] | ||
759 | -> (GHC.Types.Int, GHC.Types.Int) | ||
760 | <join 1> {- Arity: 1, Strictness: <S,1*U>m -} | ||
761 | = \ (ds :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)]) -> | ||
762 | case ds of wild1 { | ||
763 | [] -> ww6 | ||
764 | : y1 ys1 | ||
765 | -> case y1 of wild2 { (,) ds1 y2 -> | ||
766 | case y2 of wild3 { | ||
767 | DEFAULT -> GHC.List.badHead @ (GHC.Types.Int, GHC.Types.Int) | ||
768 | Main.O -> go1 ys1 } } } | ||
769 | } in | ||
770 | go1 | ||
771 | (Main.$wgetRowColDiag | ||
772 | @ Main.Square | ||
773 | ww7 | ||
774 | ww8 | ||
775 | ww | ||
776 | ww1 | ||
777 | ww2 | ||
778 | ww3 | ||
779 | ww4 | ||
780 | ww5) } }) -} | ||
781 | 2e97ede5368f9c2d2ff84f5bb17c4af3 | ||
782 | $wplaceQueen :: | ||
783 | GHC.Types.Int | ||
784 | -> GHC.Types.Int | ||
785 | -> GHC.Prim.Int# | ||
786 | -> GHC.Prim.Int# | ||
787 | -> GHC.Prim.Int# | ||
788 | -> GHC.Prim.Int# | ||
789 | -> GHC.Prim.Int# | ||
790 | -> Data.Vector.Vector Main.Square | ||
791 | -> (# GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, | ||
792 | GHC.Prim.Int#, Data.Vector.Vector Main.Square #) | ||
793 | {- Arity: 8, | ||
794 | Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U><S,U><S,U><L,U(U,A,U)>, | ||
795 | Inline: [2], | ||
796 | Unfolding: (\ (ww :: GHC.Types.Int) | ||
797 | (ww1 :: GHC.Types.Int) | ||
798 | (ww2 :: GHC.Prim.Int#) | ||
799 | (ww3 :: GHC.Prim.Int#) | ||
800 | (ww4 :: GHC.Prim.Int#) | ||
801 | (ww5 :: GHC.Prim.Int#) | ||
802 | (ww6 :: GHC.Prim.Int#) | ||
803 | (ww7 :: Data.Vector.Vector Main.Square) -> | ||
804 | case Main.$wmapRowColDiag | ||
805 | @ Main.Square | ||
806 | Main.placeQueen1 | ||
807 | ww | ||
808 | ww1 | ||
809 | ww2 | ||
810 | ww3 | ||
811 | ww4 | ||
812 | ww5 | ||
813 | ww6 | ||
814 | ww7 of ww8 { (#,,,,,#) ww9 ww10 ww11 ww12 ww13 ww14 -> | ||
815 | (# ww9, ww10, ww11, ww12, ww13, | ||
816 | case ww14 of v2 { Data.Vector.Vector ipv ipv1 ipv2 -> | ||
817 | case GHC.Magic.runRW# | ||
818 | @ ('GHC.Types.TupleRep | ||
819 | '[ 'GHC.Types.TupleRep '[], 'GHC.Types.LiftedRep]) | ||
820 | @ (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
821 | Data.Vector.Vector Main.Square #) | ||
822 | (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] -> | ||
823 | case GHC.Prim.>=# ipv1 0# of lwild { | ||
824 | DEFAULT | ||
825 | -> case Main.markX2 ipv1 | ||
826 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
827 | Data.Vector.Vector Main.Square #) | ||
828 | of {} | ||
829 | 1# | ||
830 | -> case GHC.Prim.newArray# | ||
831 | @ Main.Square | ||
832 | @ (Control.Monad.Primitive.PrimState | ||
833 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
834 | ipv1 | ||
835 | (Data.Vector.Mutable.uninitialised @ Main.Square) | ||
836 | s1 | ||
837 | `cast` | ||
838 | (GHC.Prim.State# | ||
839 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
840 | <GHC.Prim.RealWorld>_N)))_R of ds1 { (#,#) ipv3 ipv4 -> | ||
841 | case GHC.Prim.copyArray# | ||
842 | @ Main.Square | ||
843 | @ (Control.Monad.Primitive.PrimState | ||
844 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
845 | ipv2 | ||
846 | ipv | ||
847 | ipv4 | ||
848 | 0# | ||
849 | ipv1 | ||
850 | ipv3 of s'# { DEFAULT -> | ||
851 | case ww of wild3 { GHC.Types.I# x1 -> | ||
852 | case ww1 of wild4 { GHC.Types.I# x2 -> | ||
853 | let { | ||
854 | x :: GHC.Prim.Int# | ||
855 | = GHC.Prim.-# | ||
856 | (GHC.Prim.+# | ||
857 | (GHC.Prim.*# (GHC.Prim.-# (GHC.Prim.+# x1 ww11) 1#) ww13) | ||
858 | (GHC.Prim.+# x2 ww12)) | ||
859 | 1# | ||
860 | } in | ||
861 | case GHC.Prim.>=# x 0# of lwild1 { | ||
862 | DEFAULT | ||
863 | -> case Main.markX1 @ GHC.Prim.RealWorld x ipv1 | ||
864 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
865 | Data.Vector.Vector Main.Square #) | ||
866 | of {} | ||
867 | 1# | ||
868 | -> case GHC.Prim.<# x ipv1 of lwild2 { | ||
869 | DEFAULT | ||
870 | -> case Main.markX1 @ GHC.Prim.RealWorld x ipv1 | ||
871 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
872 | Data.Vector.Vector Main.Square #) | ||
873 | of {} | ||
874 | 1# | ||
875 | -> case GHC.Prim.writeArray# | ||
876 | @ (Control.Monad.Primitive.PrimState | ||
877 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
878 | @ Main.Square | ||
879 | ipv4 | ||
880 | x | ||
881 | Main.Qu | ||
882 | s'# of s'#1 { DEFAULT -> | ||
883 | case GHC.Prim.unsafeFreezeArray# | ||
884 | @ (Control.Monad.Primitive.PrimState | ||
885 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
886 | @ Main.Square | ||
887 | ipv4 | ||
888 | s'#1 of ds2 { (#,#) ipv5 ipv6 -> | ||
889 | (# ipv5 | ||
890 | `cast` | ||
891 | (GHC.Prim.State# | ||
892 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
893 | <GHC.Prim.RealWorld>_N))_R, | ||
894 | Data.Vector.Vector | ||
895 | @ Main.Square | ||
896 | 0# | ||
897 | ipv1 | ||
898 | ipv6 #) } } } } } } } } }) of ds1 { (#,#) ipv3 ipv4 -> | ||
899 | ipv4 } } #) }) -} | ||
900 | 8ef5fa9322c84b90e14eaeb7d5987990 | ||
901 | $wplaceQueen' :: | ||
902 | GHC.Types.Int | ||
903 | -> GHC.Types.Int | ||
904 | -> GHC.Prim.Int# | ||
905 | -> GHC.Prim.Int# | ||
906 | -> GHC.Prim.Int# | ||
907 | -> GHC.Prim.Int# | ||
908 | -> GHC.Prim.Int# | ||
909 | -> Data.Vector.Vector Main.Square | ||
910 | -> (# GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, GHC.Prim.Int#, | ||
911 | GHC.Prim.Int#, Data.Vector.Vector Main.Square #) | ||
912 | {- Arity: 8, | ||
913 | Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U><S,U><S,U><L,U(U,A,U)>, | ||
914 | Inline: [2], | ||
915 | Unfolding: (\ (ww :: GHC.Types.Int) | ||
916 | (ww1 :: GHC.Types.Int) | ||
917 | (ww2 :: GHC.Prim.Int#) | ||
918 | (ww3 :: GHC.Prim.Int#) | ||
919 | (ww4 :: GHC.Prim.Int#) | ||
920 | (ww5 :: GHC.Prim.Int#) | ||
921 | (ww6 :: GHC.Prim.Int#) | ||
922 | (ww7 :: Data.Vector.Vector Main.Square) -> | ||
923 | case Data.Matrix.$wmapCol | ||
924 | @ Main.Square | ||
925 | (Main.placeQueen'_fX @ GHC.Types.Int @ Main.Square) | ||
926 | ww1 | ||
927 | ww2 | ||
928 | ww3 | ||
929 | ww4 | ||
930 | ww5 | ||
931 | ww6 | ||
932 | ww7 of ww8 { (#,,,,,#) ww9 ww10 ww11 ww12 ww13 ww14 -> | ||
933 | case Data.Matrix.$wmapRow | ||
934 | @ Main.Square | ||
935 | (Main.placeQueen'_fX @ GHC.Types.Int @ Main.Square) | ||
936 | ww | ||
937 | ww9 | ||
938 | ww10 | ||
939 | ww11 | ||
940 | ww12 | ||
941 | ww13 | ||
942 | ww14 of ww15 { (#,,,,,#) ww16 ww17 ww18 ww19 ww20 ww21 -> | ||
943 | (# ww16, ww17, ww18, ww19, ww20, | ||
944 | case ww21 of v2 { Data.Vector.Vector ipv ipv1 ipv2 -> | ||
945 | case GHC.Magic.runRW# | ||
946 | @ ('GHC.Types.TupleRep | ||
947 | '[ 'GHC.Types.TupleRep '[], 'GHC.Types.LiftedRep]) | ||
948 | @ (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
949 | Data.Vector.Vector Main.Square #) | ||
950 | (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] -> | ||
951 | case GHC.Prim.>=# ipv1 0# of lwild { | ||
952 | DEFAULT | ||
953 | -> case Main.markX2 ipv1 | ||
954 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
955 | Data.Vector.Vector Main.Square #) | ||
956 | of {} | ||
957 | 1# | ||
958 | -> case GHC.Prim.newArray# | ||
959 | @ Main.Square | ||
960 | @ (Control.Monad.Primitive.PrimState | ||
961 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
962 | ipv1 | ||
963 | (Data.Vector.Mutable.uninitialised @ Main.Square) | ||
964 | s1 | ||
965 | `cast` | ||
966 | (GHC.Prim.State# | ||
967 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
968 | <GHC.Prim.RealWorld>_N)))_R of ds1 { (#,#) ipv3 ipv4 -> | ||
969 | case GHC.Prim.copyArray# | ||
970 | @ Main.Square | ||
971 | @ (Control.Monad.Primitive.PrimState | ||
972 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
973 | ipv2 | ||
974 | ipv | ||
975 | ipv4 | ||
976 | 0# | ||
977 | ipv1 | ||
978 | ipv3 of s'# { DEFAULT -> | ||
979 | case ww of wild3 { GHC.Types.I# x1 -> | ||
980 | case ww1 of wild4 { GHC.Types.I# x2 -> | ||
981 | let { | ||
982 | x :: GHC.Prim.Int# | ||
983 | = GHC.Prim.-# | ||
984 | (GHC.Prim.+# | ||
985 | (GHC.Prim.*# (GHC.Prim.-# (GHC.Prim.+# x1 ww18) 1#) ww20) | ||
986 | (GHC.Prim.+# x2 ww19)) | ||
987 | 1# | ||
988 | } in | ||
989 | case GHC.Prim.>=# x 0# of lwild1 { | ||
990 | DEFAULT | ||
991 | -> case Main.markX1 @ GHC.Prim.RealWorld x ipv1 | ||
992 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
993 | Data.Vector.Vector Main.Square #) | ||
994 | of {} | ||
995 | 1# | ||
996 | -> case GHC.Prim.<# x ipv1 of lwild2 { | ||
997 | DEFAULT | ||
998 | -> case Main.markX1 @ GHC.Prim.RealWorld x ipv1 | ||
999 | ret_ty (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1000 | Data.Vector.Vector Main.Square #) | ||
1001 | of {} | ||
1002 | 1# | ||
1003 | -> case GHC.Prim.writeArray# | ||
1004 | @ (Control.Monad.Primitive.PrimState | ||
1005 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1006 | @ Main.Square | ||
1007 | ipv4 | ||
1008 | x | ||
1009 | Main.Qu | ||
1010 | s'# of s'#1 { DEFAULT -> | ||
1011 | case GHC.Prim.unsafeFreezeArray# | ||
1012 | @ (Control.Monad.Primitive.PrimState | ||
1013 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1014 | @ Main.Square | ||
1015 | ipv4 | ||
1016 | s'#1 of ds2 { (#,#) ipv5 ipv6 -> | ||
1017 | (# ipv5 | ||
1018 | `cast` | ||
1019 | (GHC.Prim.State# | ||
1020 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1021 | <GHC.Prim.RealWorld>_N))_R, | ||
1022 | Data.Vector.Vector | ||
1023 | @ Main.Square | ||
1024 | 0# | ||
1025 | ipv1 | ||
1026 | ipv6 #) } } } } } } } } }) of ds1 { (#,#) ipv3 ipv4 -> | ||
1027 | ipv4 } } #) } }) -} | ||
1028 | c57b742ed68452b2e8b2cded00e72e1c | ||
1029 | $wsolve :: | ||
1030 | GHC.Classes.Eq t => | ||
1031 | (t -> t -> GHC.Types.Bool) | ||
1032 | -> (t -> t -> GHC.Types.Bool) | ||
1033 | -> GHC.Num.Num t => t -> [Data.Matrix.Matrix Main.Square] | ||
1034 | {- Arity: 5, | ||
1035 | Strictness: <L,1*U(C(C1(U)),A)><C(C(S)),1*C1(C1(U))><L,1*C1(C1(U))><L,U(A,C(C1(U)),A,A,A,A,C(U))><L,U>, | ||
1036 | Inline: [2], | ||
1037 | Unfolding: (\ @ t | ||
1038 | (ww :: GHC.Classes.Eq t) | ||
1039 | (ww1 :: t -> t -> GHC.Types.Bool) | ||
1040 | (ww2 :: t -> t -> GHC.Types.Bool) | ||
1041 | (w1 :: GHC.Num.Num t) | ||
1042 | (w2 :: t) -> | ||
1043 | case ww1 w2 (GHC.Num.fromInteger @ t w1 Main.ops5) of wild { | ||
1044 | GHC.Types.False | ||
1045 | -> case ww2 w2 (GHC.Num.fromInteger @ t w1 Main.lo1) of wild1 { | ||
1046 | GHC.Types.False | ||
1047 | -> case ww of ww3 { GHC.Classes.C:Eq ww4 ww5 -> | ||
1048 | let { | ||
1049 | lvl12 :: t = GHC.Num.fromInteger @ t w1 Main.ops5 | ||
1050 | } in | ||
1051 | let { | ||
1052 | lvl13 :: t = GHC.Num.fromInteger @ t w1 Main.lo2 | ||
1053 | } in | ||
1054 | letrec { | ||
1055 | solveN :: t -> [Data.Matrix.Matrix Main.Square] | ||
1056 | {- Arity: 1, Strictness: <L,U> -} | ||
1057 | = \ (ds :: t) -> | ||
1058 | case ww4 ds lvl13 of wild2 { | ||
1059 | GHC.Types.False | ||
1060 | -> case ww4 ds lvl12 of wild3 { | ||
1061 | GHC.Types.False | ||
1062 | -> Main.solve_go (solveN (GHC.Num.- @ t w1 ds lvl12)) | ||
1063 | GHC.Types.True -> Main.solve1 } | ||
1064 | GHC.Types.True -> GHC.Types.[] @ (Data.Matrix.Matrix Main.Square) } | ||
1065 | } in | ||
1066 | solveN w2 } | ||
1067 | GHC.Types.True -> GHC.Types.[] @ (Data.Matrix.Matrix Main.Square) } | ||
1068 | GHC.Types.True | ||
1069 | -> GHC.Types.[] @ (Data.Matrix.Matrix Main.Square) }) -} | ||
1070 | f5d40babaf79dc225afeeacf39e71d14 | ||
1071 | $wwinners :: | ||
1072 | (p -> p -> GHC.Types.Bool) | ||
1073 | -> GHC.Num.Num p => | ||
1074 | p | ||
1075 | -> [Data.Matrix.Matrix Main.Square] | ||
1076 | -> [Data.Matrix.Matrix Main.Square] | ||
1077 | {- Arity: 4, | ||
1078 | Strictness: <C(C(S)),C(C1(U))><L,U(A,C(C1(U)),A,A,A,A,1*C1(U))><L,U><S,1*U>, | ||
1079 | Inline: [2], | ||
1080 | Unfolding: (\ @ p | ||
1081 | (ww :: p -> p -> GHC.Types.Bool) | ||
1082 | (w1 :: GHC.Num.Num p) | ||
1083 | (w2 :: p) | ||
1084 | (w3 :: [Data.Matrix.Matrix Main.Square]) -> | ||
1085 | let { | ||
1086 | lvl12 :: p = GHC.Num.fromInteger @ p w1 Main.ops5 | ||
1087 | } in | ||
1088 | letrec { | ||
1089 | winners2 :: p | ||
1090 | -> [Data.Matrix.Matrix Main.Square] | ||
1091 | -> [Data.Matrix.Matrix Main.Square] | ||
1092 | <join 2> {- Arity: 2, Strictness: <L,U><S,1*U> -} | ||
1093 | = \ (ds :: p) (b :: [Data.Matrix.Matrix Main.Square]) -> | ||
1094 | case ww ds lvl12 of wild { | ||
1095 | GHC.Types.False | ||
1096 | -> winners2 (GHC.Num.- @ p w1 ds lvl12) (Main.winners1 @ p b) | ||
1097 | GHC.Types.True -> Main.winners_go b } | ||
1098 | } in | ||
1099 | winners2 w2 w3) -} | ||
1100 | fc231a19666745198b5cad6fbcf77735 | ||
1101 | $wwinners' :: | ||
1102 | Data.Matrix.Matrix Main.Square -> [Data.Matrix.Matrix Main.Square] | ||
1103 | {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U(U,A,U))>, Inline: [2], | ||
1104 | Unfolding: (\ @ p (w1 :: Data.Matrix.Matrix Main.Square) -> | ||
1105 | letrec { | ||
1106 | go1 :: [(GHC.Types.Int, GHC.Types.Int)] | ||
1107 | -> [Data.Matrix.Matrix Main.Square] | ||
1108 | {- Arity: 1, Strictness: <S,1*U> -} | ||
1109 | = \ (ds :: [(GHC.Types.Int, GHC.Types.Int)]) -> | ||
1110 | case ds of wild { | ||
1111 | [] -> GHC.Types.[] @ (Data.Matrix.Matrix Main.Square) | ||
1112 | : y ys | ||
1113 | -> case y of ww { (,) ww1 ww2 -> | ||
1114 | case w1 of ww3 { Data.Matrix.M ww4 ww5 ww6 ww7 ww8 ww9 -> | ||
1115 | let { | ||
1116 | exit :: [Data.Matrix.Matrix Main.Square] <join 0> | ||
1117 | = GHC.Types.: | ||
1118 | @ (Data.Matrix.Matrix Main.Square) | ||
1119 | (case Main.$wplaceQueen | ||
1120 | ww1 | ||
1121 | ww2 | ||
1122 | ww4 | ||
1123 | ww5 | ||
1124 | ww6 | ||
1125 | ww7 | ||
1126 | ww8 | ||
1127 | ww9 of ww10 { (#,,,,,#) ww11 ww12 ww13 ww14 ww15 ww16 -> | ||
1128 | Data.Matrix.M @ Main.Square ww11 ww12 ww13 ww14 ww15 ww16 }) | ||
1129 | (go1 ys) | ||
1130 | } in | ||
1131 | let { | ||
1132 | exit1 :: [Data.Matrix.Matrix Main.Square] <join 0> = go1 ys | ||
1133 | } in | ||
1134 | letrec { | ||
1135 | go2 :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)] | ||
1136 | -> [Data.Matrix.Matrix Main.Square] | ||
1137 | <join 1> {- Arity: 1, Strictness: <S,1*U> -} | ||
1138 | = \ (ds1 :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)]) -> | ||
1139 | case ds1 of wild1 { | ||
1140 | [] -> exit | ||
1141 | : y1 ys1 | ||
1142 | -> case y1 of wild2 { (,) ds2 y2 -> | ||
1143 | case y2 of wild3 { DEFAULT -> exit1 Main.O -> go2 ys1 } } } | ||
1144 | } in | ||
1145 | go2 | ||
1146 | (Main.$wgetRowColDiag | ||
1147 | @ Main.Square | ||
1148 | ww1 | ||
1149 | ww2 | ||
1150 | ww4 | ||
1151 | ww5 | ||
1152 | ww6 | ||
1153 | ww7 | ||
1154 | ww8 | ||
1155 | ww9) } } } | ||
1156 | } in | ||
1157 | go1 (Main.nextAvail_$sscanBoard Main.O w1)) -} | ||
1158 | 636ccc849665ce7c3156c440898486e4 | ||
1159 | data Square = X | Qu | O | T | ||
1160 | e6f15f421e1dad77000d8fc6a4ea855b | ||
1161 | allPositions :: [(GHC.Types.Int, GHC.Types.Int)] | ||
1162 | {- Unfolding: (Main.allPositions_go 1#) -} | ||
1163 | 346f770a613a5360df15e8c985bdce13 | ||
1164 | allPositions_go :: | ||
1165 | GHC.Prim.Int# -> [(GHC.Types.Int, GHC.Types.Int)] | ||
1166 | {- Arity: 1, HasNoCafRefs, Strictness: <L,U> -} | ||
1167 | 194ce8b8e7f8d37be79aac8aa28e9d44 | ||
1168 | allops :: b -> b -> [(b, b)] | ||
1169 | {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m2, | ||
1170 | Unfolding: InlineRule (2, True, False) | ||
1171 | (\ @ b (a :: b) (b1 :: b) -> | ||
1172 | GHC.Types.: | ||
1173 | @ (b, b) | ||
1174 | (a, a) | ||
1175 | (GHC.Types.: | ||
1176 | @ (b, b) | ||
1177 | (a, b1) | ||
1178 | (GHC.Types.: | ||
1179 | @ (b, b) | ||
1180 | (b1, a) | ||
1181 | (GHC.Types.: @ (b, b) (b1, b1) (GHC.Types.[] @ (b, b)))))) -} | ||
1182 | 1510beb52847e90895824612d049f264 | ||
1183 | applyop :: (t1, t2) -> (t1 -> a, t2 -> b) -> (a, b) | ||
1184 | {- Arity: 2, HasNoCafRefs, | ||
1185 | Strictness: <S,1*U(U,U)><S,1*U(1*C1(U),1*C1(U))>m, | ||
1186 | Unfolding: InlineRule (2, True, False) | ||
1187 | (\ @ t @ t1 @ a @ b (ds :: (t, t1)) (ds1 :: (t -> a, t1 -> b)) -> | ||
1188 | case ds of wild { (,) x y -> | ||
1189 | case ds1 of wild1 { (,) a1 b1 -> (a1 x, b1 y) } }) -} | ||
1190 | 6f09b815b2eac49fd5e364003153edb6 | ||
1191 | applyops :: | ||
1192 | (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer) | ||
1193 | -> [(GHC.Integer.Type.Integer, GHC.Integer.Type.Integer)] | ||
1194 | {- Arity: 1, Strictness: <L,U(U,U)>, | ||
1195 | Unfolding: InlineRule (1, True, False) | ||
1196 | (\ (p :: (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer)) -> | ||
1197 | GHC.Base.build | ||
1198 | @ (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer) | ||
1199 | (\ @ b1 | ||
1200 | (c :: (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer) | ||
1201 | -> b1 -> b1)[OneShot] | ||
1202 | (n :: b1)[OneShot] -> | ||
1203 | GHC.Base.foldr | ||
1204 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
1205 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
1206 | @ b1 | ||
1207 | (GHC.Base.mapFB | ||
1208 | @ (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer) | ||
1209 | @ b1 | ||
1210 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
1211 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
1212 | c | ||
1213 | (Main.applyop | ||
1214 | @ GHC.Integer.Type.Integer | ||
1215 | @ GHC.Integer.Type.Integer | ||
1216 | @ GHC.Integer.Type.Integer | ||
1217 | @ GHC.Integer.Type.Integer | ||
1218 | p)) | ||
1219 | n | ||
1220 | Main.ops)) -} | ||
1221 | 3d3675529761c115a8648803688b15f0 | ||
1222 | diag :: | ||
1223 | (GHC.Types.Int, GHC.Types.Int) | ||
1224 | -> Data.Matrix.Matrix a -> [(GHC.Types.Int, GHC.Types.Int)] | ||
1225 | {- Arity: 2, HasNoCafRefs, | ||
1226 | Strictness: <S(S(S)L),1*U(1*U(U),U(U))><L,U(U,U,A,A,A,A)>, | ||
1227 | Inline: [2], | ||
1228 | Unfolding: InlineRule (2, True, False) | ||
1229 | (\ @ a | ||
1230 | (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
1231 | (w2 :: Data.Matrix.Matrix a) -> | ||
1232 | case w1 of ww { (,) ww1 ww2 -> | ||
1233 | case ww1 of ww3 { GHC.Types.I# ww4 -> | ||
1234 | Main.$wdiag @ a ww4 ww2 w2 } }) -} | ||
1235 | 521caf14a897d9945170c2a83c7838bf | ||
1236 | diag'' :: | ||
1237 | (GHC.Num.Num b, GHC.Enum.Enum b, GHC.Num.Num a, GHC.Enum.Enum a) => | ||
1238 | a -> b -> [(a, b)] | ||
1239 | {- Arity: 6, HasNoCafRefs, | ||
1240 | Strictness: <L,U(A,A,A,A,A,A,C(U))><L,U(A,A,A,A,A,A,C(C1(U)),A)><L,U(A,A,A,A,A,A,C(U))><S(LLLLLLC(C(S))L),1*U(A,A,A,A,A,A,C(C1(U)),A)><L,U><L,U>, | ||
1241 | Inline: [2], | ||
1242 | Unfolding: InlineRule (6, True, False) | ||
1243 | (\ @ b | ||
1244 | @ a | ||
1245 | (w1 :: GHC.Num.Num b) | ||
1246 | (w2 :: GHC.Enum.Enum b) | ||
1247 | (w3 :: GHC.Num.Num a) | ||
1248 | (w4 :: GHC.Enum.Enum a) | ||
1249 | (w5 :: a) | ||
1250 | (w6 :: b) -> | ||
1251 | case w4 of ww { GHC.Enum.C:Enum ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 -> | ||
1252 | Main.$wdiag'' @ b @ a w1 w2 w3 ww7 w5 w6 }) -} | ||
1253 | 2189f869b91b6ccf81bf4b6df23487af | ||
1254 | diag1 :: GHC.Types.Int | ||
1255 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 1#) -} | ||
1256 | 4813f5027120582dc077480ee2be320f | ||
1257 | diag_a :: GHC.Types.Int -> GHC.Types.Int | ||
1258 | {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U)>m, | ||
1259 | Unfolding: InlineRule (1, True, False) | ||
1260 | (\ (ds :: GHC.Types.Int) -> | ||
1261 | case ds of wild { GHC.Types.I# x -> | ||
1262 | GHC.Types.I# (GHC.Prim.+# x 1#) }) -} | ||
1263 | 90a1a91fcfdff7b345d5ba6f915f51fe | ||
1264 | diag_b :: GHC.Types.Int -> GHC.Types.Int | ||
1265 | {- Arity: 1, HasNoCafRefs, | ||
1266 | Unfolding: (Main.$ssubtract Main.diag1) -} | ||
1267 | d565538a2eaa3b46fc2f853fadab9e26 | ||
1268 | getColL :: GHC.Types.Int -> Data.Matrix.Matrix b -> [b] | ||
1269 | {- Arity: 2, Strictness: <L,U(U)><L,U(U,U,U,U,U,U(U,A,U))>, | ||
1270 | Unfolding: (\ @ b | ||
1271 | (c :: GHC.Types.Int) | ||
1272 | (b1 :: Data.Matrix.Matrix b) -> | ||
1273 | let { | ||
1274 | lvl12 :: GHC.Base.String | ||
1275 | = GHC.Show.$fShow(,)_$sgo1 | ||
1276 | Main.getColL17 | ||
1277 | (\ (w2 :: GHC.Base.String)[OneShot] -> | ||
1278 | case c of ww2 { GHC.Types.I# ww3 -> | ||
1279 | case GHC.Show.$wshowSignedInt 0# ww3 w2 of ww4 { (#,#) ww5 ww6 -> | ||
1280 | GHC.Types.: @ GHC.Types.Char ww5 ww6 } }) | ||
1281 | (GHC.Types.[] @ GHC.Show.ShowS) | ||
1282 | } in | ||
1283 | let { | ||
1284 | lvl13 :: [GHC.Types.Char] | ||
1285 | = GHC.Types.: @ GHC.Types.Char GHC.Show.showList__1 lvl12 | ||
1286 | } in | ||
1287 | letrec { | ||
1288 | go1 :: GHC.Prim.Int# -> [b] {- Arity: 1, Strictness: <L,U> -} | ||
1289 | = \ (x :: GHC.Prim.Int#) -> | ||
1290 | GHC.Types.: | ||
1291 | @ b | ||
1292 | (case b1 of wild { Data.Matrix.M dt dt1 dt2 dt3 dt4 ds -> | ||
1293 | let { | ||
1294 | $j :: b <join 0> {- Strictness: x -} | ||
1295 | = GHC.Err.error | ||
1296 | @ 'GHC.Types.LiftedRep | ||
1297 | @ b | ||
1298 | Main.getColL3 | ||
1299 | `cast` | ||
1300 | (Sym (GHC.Classes.N:IP[0] | ||
1301 | <"callStack">_N <GHC.Stack.Types.CallStack>_N)) | ||
1302 | (GHC.CString.unpackAppendCString# | ||
1303 | Main.getColL2 | ||
1304 | (let { | ||
1305 | z :: [GHC.Types.Char] | ||
1306 | = GHC.CString.unpackAppendCString# | ||
1307 | Main.getColL1 | ||
1308 | (case Data.Matrix.$wsizeStr | ||
1309 | dt | ||
1310 | (GHC.Types.I# dt1) of ww2 { (#,#) ww3 ww4 -> | ||
1311 | Main.getColL_go (GHC.Types.: @ GHC.Types.Char ww3 ww4) }) | ||
1312 | } in | ||
1313 | letrec { | ||
1314 | go2 :: [GHC.Types.Char] -> [GHC.Types.Char] | ||
1315 | {- Arity: 1, Strictness: <S,1*U> -} | ||
1316 | = \ (ds1 :: [GHC.Types.Char]) -> | ||
1317 | case ds1 of wild1 { | ||
1318 | [] -> z : y ys -> GHC.Types.: @ GHC.Types.Char y (go2 ys) } | ||
1319 | } in | ||
1320 | go2 | ||
1321 | (GHC.Types.: | ||
1322 | @ GHC.Types.Char | ||
1323 | GHC.Show.$fShow(,)4 | ||
1324 | (case GHC.Show.$wshowSignedInt | ||
1325 | 0# | ||
1326 | x | ||
1327 | lvl13 of ww4 { (#,#) ww5 ww6 -> | ||
1328 | GHC.Types.: @ GHC.Types.Char ww5 ww6 })))) | ||
1329 | } in | ||
1330 | case GHC.Prim.># x dt of lwild { | ||
1331 | DEFAULT | ||
1332 | -> case c of wild2 { GHC.Types.I# x1 -> | ||
1333 | case GHC.Prim.># x1 dt1 of lwild1 { | ||
1334 | DEFAULT | ||
1335 | -> case GHC.Prim.<# x 1# of lwild2 { | ||
1336 | DEFAULT | ||
1337 | -> case GHC.Prim.<# x1 1# of lwild3 { | ||
1338 | DEFAULT | ||
1339 | -> case ds of wild3 { Data.Vector.Vector dt5 dt6 dt7 -> | ||
1340 | case GHC.Prim.indexArray# | ||
1341 | @ b | ||
1342 | dt7 | ||
1343 | (GHC.Prim.-# | ||
1344 | (GHC.Prim.+# | ||
1345 | dt5 | ||
1346 | (GHC.Prim.+# | ||
1347 | (GHC.Prim.*# | ||
1348 | (GHC.Prim.-# (GHC.Prim.+# x dt2) 1#) | ||
1349 | dt4) | ||
1350 | (GHC.Prim.+# x1 dt3))) | ||
1351 | 1#) of ds2 { Unit# ipv -> | ||
1352 | ipv } } | ||
1353 | 1# -> $j } | ||
1354 | 1# -> $j } | ||
1355 | 1# -> $j } } | ||
1356 | 1# -> $j } }) | ||
1357 | (case x of wild { | ||
1358 | DEFAULT -> go1 (GHC.Prim.+# wild 1#) 8# -> GHC.Types.[] @ b }) | ||
1359 | } in | ||
1360 | go1 1#) -} | ||
1361 | 59a3d6e7a7d530f2d5917c5d492ef742 | ||
1362 | getColL1 :: GHC.Prim.Addr# | ||
1363 | {- HasNoCafRefs, Unfolding: (" element from a "#) -} | ||
1364 | 7b742804a973a371e3e88e2b04b6943d | ||
1365 | getColL10 :: GHC.Prim.Addr# | ||
1366 | {- HasNoCafRefs, Unfolding: ("./Data/Matrix.hs"#) -} | ||
1367 | 16a55bd560443de3787e26963c224d00 | ||
1368 | getColL11 :: [GHC.Types.Char] | ||
1369 | {- Unfolding: (GHC.CString.unpackCString# Main.getColL12) -} | ||
1370 | 49b261779522cf2cb70b366e5468ac70 | ||
1371 | getColL12 :: GHC.Prim.Addr# | ||
1372 | {- HasNoCafRefs, Unfolding: ("Data.Matrix"#) -} | ||
1373 | 92b62b416ca035d74d9f76c2d45db080 | ||
1374 | getColL13 :: [GHC.Types.Char] | ||
1375 | {- Unfolding: (GHC.CString.unpackCString# Main.getColL14) -} | ||
1376 | d70fe03047f9d5d1fbd4af4cf9015d44 | ||
1377 | getColL14 :: GHC.Prim.Addr# | ||
1378 | {- HasNoCafRefs, | ||
1379 | Unfolding: ("matrix-0.3.6.1-CUcUqfmsmAA7saz436AQSk"#) -} | ||
1380 | 3231f8c7d8c0936ef4d69ce873202d4f | ||
1381 | getColL15 :: [GHC.Types.Char] | ||
1382 | {- Unfolding: (GHC.CString.unpackCString# Main.getColL16) -} | ||
1383 | c23d90f9195be571da707594d1a5f451 | ||
1384 | getColL16 :: GHC.Prim.Addr# | ||
1385 | {- HasNoCafRefs, Unfolding: ("error"#) -} | ||
1386 | ff1980320d786af053c918c56beea394 | ||
1387 | getColL17 :: [GHC.Types.Char] | ||
1388 | {- HasNoCafRefs, Strictness: m2, | ||
1389 | Unfolding: (GHC.Types.: | ||
1390 | @ GHC.Types.Char | ||
1391 | GHC.Show.$fShow(,)2 | ||
1392 | (GHC.Types.[] @ GHC.Types.Char)) -} | ||
1393 | 79518a96650d201c5f67e67a4db3cb67 | ||
1394 | getColL2 :: GHC.Prim.Addr# | ||
1395 | {- HasNoCafRefs, Unfolding: ("getElem: Trying to get the "#) -} | ||
1396 | 5619add454821844124a1652165aec69 | ||
1397 | getColL3 :: GHC.Stack.Types.CallStack | ||
1398 | {- Strictness: m2, | ||
1399 | Unfolding: (GHC.Stack.Types.PushCallStack | ||
1400 | Main.getColL15 | ||
1401 | Main.getColL4 | ||
1402 | GHC.Stack.Types.EmptyCallStack) -} | ||
1403 | eeb651480663ce22e6859c5904879429 | ||
1404 | getColL4 :: GHC.Stack.Types.SrcLoc | ||
1405 | {- Strictness: m, | ||
1406 | Unfolding: (GHC.Stack.Types.SrcLoc | ||
1407 | Main.getColL13 | ||
1408 | Main.getColL11 | ||
1409 | Main.getColL9 | ||
1410 | Main.getColL8 | ||
1411 | Main.getColL7 | ||
1412 | Main.getColL6 | ||
1413 | Main.getColL5) -} | ||
1414 | de832c74ff8c2a95f2e64d0ce59ab379 | ||
1415 | getColL5 :: GHC.Types.Int | ||
1416 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 22#) -} | ||
1417 | 6cbddb6b2bd4ca54512efe418fc3f972 | ||
1418 | getColL6 :: GHC.Types.Int | ||
1419 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 456#) -} | ||
1420 | 6ebdb60bb88d05048f3b0d9a4cfa8ea5 | ||
1421 | getColL7 :: GHC.Types.Int | ||
1422 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 6#) -} | ||
1423 | fbf781328cfd77e1d9fea86e2f58d3a0 | ||
1424 | getColL8 :: GHC.Types.Int | ||
1425 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 451#) -} | ||
1426 | ac6cdea8a10db215e86741010968aa95 | ||
1427 | getColL9 :: [GHC.Types.Char] | ||
1428 | {- Unfolding: (GHC.CString.unpackCString# Main.getColL10) -} | ||
1429 | b2e16ce0be6dfbeea7c4f1ecb6d7439d | ||
1430 | getColL_go :: [GHC.Types.Char] -> [GHC.Types.Char] | ||
1431 | {- Arity: 1, Strictness: <S,1*U> -} | ||
1432 | bad58c8bb42255af4a1eef18a97a672a | ||
1433 | getDiagL :: | ||
1434 | (GHC.Types.Int, GHC.Types.Int) -> Data.Matrix.Matrix a -> [a] | ||
1435 | {- Arity: 2, | ||
1436 | Strictness: <S(S(S)L),1*U(1*U(U),U(U))><L,U(U,U,U,U,U,U(U,A,U))>, | ||
1437 | Inline: [2], | ||
1438 | Unfolding: InlineRule (2, True, False) | ||
1439 | (\ @ a | ||
1440 | (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
1441 | (w2 :: Data.Matrix.Matrix a) -> | ||
1442 | case w1 of ww { (,) ww1 ww2 -> | ||
1443 | case ww1 of ww3 { GHC.Types.I# ww4 -> | ||
1444 | Main.$wgetDiagL @ a ww4 ww2 w2 } }) -} | ||
1445 | b3250ecc7862688bbb8836fe2305b560 | ||
1446 | getRowColDiag :: | ||
1447 | (GHC.Types.Int, GHC.Types.Int) | ||
1448 | -> Data.Matrix.Matrix a -> [((GHC.Types.Int, GHC.Types.Int), a)] | ||
1449 | {- Arity: 2, | ||
1450 | Strictness: <S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>, | ||
1451 | Inline: [2], | ||
1452 | Unfolding: InlineRule (2, True, False) | ||
1453 | (\ @ a | ||
1454 | (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
1455 | (w2 :: Data.Matrix.Matrix a) -> | ||
1456 | case w1 of ww { (,) ww1 ww2 -> | ||
1457 | case w2 of ww3 { Data.Matrix.M ww4 ww5 ww6 ww7 ww8 ww9 -> | ||
1458 | Main.$wgetRowColDiag @ a ww1 ww2 ww4 ww5 ww6 ww7 ww8 ww9 } }) -} | ||
1459 | 89c54d6735deee0f2e6f5893b7bb62b3 | ||
1460 | getRowL :: GHC.Types.Int -> Data.Matrix.Matrix b -> [b] | ||
1461 | {- Arity: 2, Strictness: <L,U(U)><L,U(U,U,U,U,U,U(U,A,U))>, | ||
1462 | Unfolding: (\ @ b | ||
1463 | (r :: GHC.Types.Int) | ||
1464 | (b1 :: Data.Matrix.Matrix b) -> | ||
1465 | letrec { | ||
1466 | go1 :: GHC.Prim.Int# -> [b] {- Arity: 1, Strictness: <L,U> -} | ||
1467 | = \ (x :: GHC.Prim.Int#) -> | ||
1468 | GHC.Types.: | ||
1469 | @ b | ||
1470 | (case b1 of wild { Data.Matrix.M dt dt1 dt2 dt3 dt4 ds -> | ||
1471 | case r of wild1 { GHC.Types.I# x1 -> | ||
1472 | let { | ||
1473 | $j :: b <join 0> {- Strictness: x -} | ||
1474 | = GHC.Err.error | ||
1475 | @ 'GHC.Types.LiftedRep | ||
1476 | @ b | ||
1477 | Main.getColL3 | ||
1478 | `cast` | ||
1479 | (Sym (GHC.Classes.N:IP[0] | ||
1480 | <"callStack">_N <GHC.Stack.Types.CallStack>_N)) | ||
1481 | (GHC.CString.unpackAppendCString# | ||
1482 | Main.getColL2 | ||
1483 | (let { | ||
1484 | z :: [GHC.Types.Char] | ||
1485 | = GHC.CString.unpackAppendCString# | ||
1486 | Main.getColL1 | ||
1487 | (case Data.Matrix.$wsizeStr | ||
1488 | dt | ||
1489 | (GHC.Types.I# dt1) of ww2 { (#,#) ww3 ww4 -> | ||
1490 | Main.getColL_go (GHC.Types.: @ GHC.Types.Char ww3 ww4) }) | ||
1491 | } in | ||
1492 | letrec { | ||
1493 | go2 :: [GHC.Types.Char] -> [GHC.Types.Char] | ||
1494 | {- Arity: 1, Strictness: <S,1*U> -} | ||
1495 | = \ (ds1 :: [GHC.Types.Char]) -> | ||
1496 | case ds1 of wild2 { | ||
1497 | [] -> z : y ys -> GHC.Types.: @ GHC.Types.Char y (go2 ys) } | ||
1498 | } in | ||
1499 | go2 | ||
1500 | (GHC.Types.: | ||
1501 | @ GHC.Types.Char | ||
1502 | GHC.Show.$fShow(,)4 | ||
1503 | (case GHC.Show.$wshowSignedInt | ||
1504 | 0# | ||
1505 | x1 | ||
1506 | (GHC.Types.: | ||
1507 | @ GHC.Types.Char | ||
1508 | GHC.Show.showList__1 | ||
1509 | (GHC.Show.$fShow(,)_$sgo1 | ||
1510 | Main.getColL17 | ||
1511 | (\ (w2 :: GHC.Base.String)[OneShot] -> | ||
1512 | case GHC.Show.$wshowSignedInt | ||
1513 | 0# | ||
1514 | x | ||
1515 | w2 of ww4 { (#,#) ww5 ww6 -> | ||
1516 | GHC.Types.: @ GHC.Types.Char ww5 ww6 }) | ||
1517 | (GHC.Types.[] | ||
1518 | @ GHC.Show.ShowS))) of ww4 { (#,#) ww5 ww6 -> | ||
1519 | GHC.Types.: @ GHC.Types.Char ww5 ww6 })))) | ||
1520 | } in | ||
1521 | case GHC.Prim.># x1 dt of lwild { | ||
1522 | DEFAULT | ||
1523 | -> case GHC.Prim.># x dt1 of lwild1 { | ||
1524 | DEFAULT | ||
1525 | -> case GHC.Prim.<# x1 1# of lwild2 { | ||
1526 | DEFAULT | ||
1527 | -> case GHC.Prim.<# x 1# of lwild3 { | ||
1528 | DEFAULT | ||
1529 | -> case ds of wild3 { Data.Vector.Vector dt5 dt6 dt7 -> | ||
1530 | case GHC.Prim.indexArray# | ||
1531 | @ b | ||
1532 | dt7 | ||
1533 | (GHC.Prim.-# | ||
1534 | (GHC.Prim.+# | ||
1535 | dt5 | ||
1536 | (GHC.Prim.+# | ||
1537 | (GHC.Prim.*# | ||
1538 | (GHC.Prim.-# (GHC.Prim.+# x1 dt2) 1#) | ||
1539 | dt4) | ||
1540 | (GHC.Prim.+# x dt3))) | ||
1541 | 1#) of ds2 { Unit# ipv -> | ||
1542 | ipv } } | ||
1543 | 1# -> $j } | ||
1544 | 1# -> $j } | ||
1545 | 1# -> $j } | ||
1546 | 1# -> $j } } }) | ||
1547 | (case x of wild { | ||
1548 | DEFAULT -> go1 (GHC.Prim.+# wild 1#) 8# -> GHC.Types.[] @ b }) | ||
1549 | } in | ||
1550 | go1 1#) -} | ||
1551 | 2a4c80aa03a4f7ee0eee9342de9b7e08 | ||
1552 | initBoard :: Data.Matrix.Matrix Main.Square | ||
1553 | {- Strictness: m, | ||
1554 | Unfolding: (Data.Matrix.M | ||
1555 | @ Main.Square | ||
1556 | 8# | ||
1557 | 8# | ||
1558 | 0# | ||
1559 | 0# | ||
1560 | 8# | ||
1561 | Main.initBoard1) -} | ||
1562 | 2e11b49545df662a0298b6b61ce33edc | ||
1563 | initBoard1 :: Data.Vector.Vector Main.Square | ||
1564 | {- Unfolding: (case GHC.Magic.runRW# | ||
1565 | @ ('GHC.Types.TupleRep | ||
1566 | '[ 'GHC.Types.TupleRep '[], 'GHC.Types.LiftedRep]) | ||
1567 | @ (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1568 | Data.Vector.Vector Main.Square #) | ||
1569 | Main.initBoard2 of ds1 { (#,#) ipv1 ipv2 -> | ||
1570 | ipv2 }) -} | ||
1571 | 9ac58488e11448bdb0825964d3026604 | ||
1572 | initBoard2 :: | ||
1573 | GHC.Prim.State# GHC.Prim.RealWorld | ||
1574 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1575 | Data.Vector.Vector Main.Square #) | ||
1576 | {- Arity: 1, Strictness: <S,U>, | ||
1577 | Unfolding: (\ (s1 :: GHC.Prim.State# | ||
1578 | GHC.Prim.RealWorld)[OneShot] -> | ||
1579 | case GHC.Prim.newArray# | ||
1580 | @ Main.Square | ||
1581 | @ (Control.Monad.Primitive.PrimState | ||
1582 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1583 | 64# | ||
1584 | (Data.Vector.Mutable.uninitialised @ Main.Square) | ||
1585 | s1 | ||
1586 | `cast` | ||
1587 | (GHC.Prim.State# | ||
1588 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1589 | (Nth:0 | ||
1590 | (Nth:2 | ||
1591 | (<GHC.Prim.State# GHC.Prim.RealWorld>_R | ||
1592 | ->_R ((#,#) | ||
1593 | <'GHC.Types.TupleRep '[]>_R | ||
1594 | <'GHC.Types.LiftedRep>_R | ||
1595 | <GHC.Prim.State# GHC.Prim.RealWorld>_R | ||
1596 | (Sub (Sym (Data.Vector.D:R:MutableVector[0])) <GHC.Prim.RealWorld>_N <Main.Square>_N))_R))))))_R of ds1 { (#,#) ipv ipv1 -> | ||
1597 | let { | ||
1598 | exit :: GHC.Prim.State# GHC.Prim.RealWorld | ||
1599 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1600 | Data.Vector.Vector Main.Square #) | ||
1601 | <join 1> {- Arity: 1, Strictness: <S,U> -} | ||
1602 | = \ (w1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] -> | ||
1603 | let { | ||
1604 | exit1 :: GHC.Prim.State# GHC.Prim.RealWorld | ||
1605 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1606 | Data.Vector.Vector Main.Square #) | ||
1607 | <join 1> {- Arity: 1, Strictness: <S,U> -} | ||
1608 | = \ (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] -> | ||
1609 | case GHC.Prim.writeArray# | ||
1610 | @ (Control.Monad.Primitive.PrimState | ||
1611 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1612 | @ Main.Square | ||
1613 | ipv1 | ||
1614 | 63# | ||
1615 | Main.O | ||
1616 | w2 | ||
1617 | `cast` | ||
1618 | (GHC.Prim.State# | ||
1619 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1620 | <GHC.Prim.RealWorld>_N)))_R of s'# { DEFAULT -> | ||
1621 | case GHC.Prim.unsafeFreezeArray# | ||
1622 | @ (Control.Monad.Primitive.PrimState | ||
1623 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1624 | @ Main.Square | ||
1625 | ipv1 | ||
1626 | s'# of ds2 { (#,#) ipv2 ipv3 -> | ||
1627 | (# ipv2 | ||
1628 | `cast` | ||
1629 | (GHC.Prim.State# | ||
1630 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1631 | <GHC.Prim.RealWorld>_N))_R, | ||
1632 | Data.Vector.Vector @ Main.Square 0# 64# ipv3 #) } } | ||
1633 | } in | ||
1634 | letrec { | ||
1635 | $wgo3 :: GHC.Prim.Int# | ||
1636 | -> GHC.Prim.State# GHC.Prim.RealWorld | ||
1637 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1638 | Data.Vector.Vector Main.Square #) | ||
1639 | <join 2> {- Arity: 2, Strictness: <S,1*U><S,U>, Inline: [2] -} | ||
1640 | = \ (ww :: GHC.Prim.Int#) | ||
1641 | (w2 :: GHC.Prim.State# GHC.Prim.RealWorld) -> | ||
1642 | case ww of wild { | ||
1643 | DEFAULT | ||
1644 | -> case GHC.Prim.writeArray# | ||
1645 | @ (Control.Monad.Primitive.PrimState | ||
1646 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1647 | @ Main.Square | ||
1648 | ipv1 | ||
1649 | (GHC.Prim.+# 55# wild) | ||
1650 | Main.O | ||
1651 | w2 | ||
1652 | `cast` | ||
1653 | (GHC.Prim.State# | ||
1654 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1655 | <GHC.Prim.RealWorld>_N)))_R of s'# { DEFAULT -> | ||
1656 | $wgo3 | ||
1657 | (GHC.Prim.+# wild 1#) | ||
1658 | s'# | ||
1659 | `cast` | ||
1660 | (GHC.Prim.State# | ||
1661 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1662 | <GHC.Prim.RealWorld>_N))_R } | ||
1663 | 8# -> exit1 w2 } | ||
1664 | } in | ||
1665 | $wgo3 1# w1 | ||
1666 | } in | ||
1667 | letrec { | ||
1668 | $wgo3 :: GHC.Prim.Int# | ||
1669 | -> GHC.Prim.State# GHC.Prim.RealWorld | ||
1670 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1671 | Data.Vector.Vector Main.Square #) | ||
1672 | <join 2> {- Arity: 2, Strictness: <S,1*U><S,U>, Inline: [2] -} | ||
1673 | = \ (ww :: GHC.Prim.Int#) | ||
1674 | (w1 :: GHC.Prim.State# GHC.Prim.RealWorld) -> | ||
1675 | case ww of wild { | ||
1676 | DEFAULT | ||
1677 | -> let { | ||
1678 | exit1 :: GHC.Prim.State# GHC.Prim.RealWorld | ||
1679 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1680 | Data.Vector.Vector Main.Square #) | ||
1681 | <join 1> {- Arity: 1, Strictness: <S,U> -} | ||
1682 | = \ (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] -> | ||
1683 | case GHC.Prim.writeArray# | ||
1684 | @ (Control.Monad.Primitive.PrimState | ||
1685 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1686 | @ Main.Square | ||
1687 | ipv1 | ||
1688 | (GHC.Prim.+# -1# (GHC.Prim.*# 8# wild)) | ||
1689 | Main.O | ||
1690 | w2 | ||
1691 | `cast` | ||
1692 | (GHC.Prim.State# | ||
1693 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1694 | <GHC.Prim.RealWorld>_N)))_R of s'# { DEFAULT -> | ||
1695 | $wgo3 | ||
1696 | (GHC.Prim.+# wild 1#) | ||
1697 | s'# | ||
1698 | `cast` | ||
1699 | (GHC.Prim.State# | ||
1700 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1701 | <GHC.Prim.RealWorld>_N))_R } | ||
1702 | } in | ||
1703 | letrec { | ||
1704 | $wgo1 :: GHC.Prim.Int# | ||
1705 | -> GHC.Prim.State# GHC.Prim.RealWorld | ||
1706 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, | ||
1707 | Data.Vector.Vector Main.Square #) | ||
1708 | <join 2> {- Arity: 2, Strictness: <S,1*U><S,U>, Inline: [2] -} | ||
1709 | = \ (ww1 :: GHC.Prim.Int#) | ||
1710 | (w2 :: GHC.Prim.State# GHC.Prim.RealWorld) -> | ||
1711 | case ww1 of wild1 { | ||
1712 | DEFAULT | ||
1713 | -> case GHC.Prim.writeArray# | ||
1714 | @ (Control.Monad.Primitive.PrimState | ||
1715 | (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1716 | @ Main.Square | ||
1717 | ipv1 | ||
1718 | (GHC.Prim.+# | ||
1719 | -9# | ||
1720 | (GHC.Prim.+# wild1 (GHC.Prim.*# 8# wild))) | ||
1721 | Main.O | ||
1722 | w2 | ||
1723 | `cast` | ||
1724 | (GHC.Prim.State# | ||
1725 | (Sym (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1726 | <GHC.Prim.RealWorld>_N)))_R of s'# { DEFAULT -> | ||
1727 | $wgo1 | ||
1728 | (GHC.Prim.+# wild1 1#) | ||
1729 | s'# | ||
1730 | `cast` | ||
1731 | (GHC.Prim.State# | ||
1732 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1733 | <GHC.Prim.RealWorld>_N))_R } | ||
1734 | 8# -> exit1 w2 } | ||
1735 | } in | ||
1736 | $wgo1 1# w1 | ||
1737 | 8# -> exit w1 } | ||
1738 | } in | ||
1739 | $wgo3 | ||
1740 | 1# | ||
1741 | ipv | ||
1742 | `cast` | ||
1743 | (GHC.Prim.State# | ||
1744 | (Control.Monad.Primitive.D:R:PrimStateST[0] | ||
1745 | <GHC.Prim.RealWorld>_N))_R }) -} | ||
1746 | 419b12158f8179bd4e20ff85d2021536 | ||
1747 | isWinnable :: | ||
1748 | GHC.Types.Int -> Data.Matrix.Matrix Main.Square -> GHC.Types.Bool | ||
1749 | {- Arity: 2, Strictness: <S(S),1*U(U)><L,U(U,U,U,U,U,U(U,A,U))>, | ||
1750 | Inline: [2], | ||
1751 | Unfolding: InlineRule (2, True, False) | ||
1752 | (\ (w1 :: GHC.Types.Int) (w2 :: Data.Matrix.Matrix Main.Square) -> | ||
1753 | case w1 of ww { GHC.Types.I# ww1 -> Main.$wisWinnable ww1 w2 }) -} | ||
1754 | db1e2e2978dca671b96a5fb06e38a355 | ||
1755 | isWinnable' :: | ||
1756 | p -> Data.Matrix.Matrix Main.Square -> [GHC.Types.Char] | ||
1757 | {- Arity: 2, Strictness: <L,A><L,U(U,U,U,U,U,U(U,A,U))>, | ||
1758 | Inline: [2], | ||
1759 | Unfolding: InlineRule (2, True, True) | ||
1760 | (\ @ p (w1 :: p) (w2 :: Data.Matrix.Matrix Main.Square) -> | ||
1761 | Main.$wisWinnable' @ p w2) -} | ||
1762 | fe5821aa57b843ac278ee5301d522efa | ||
1763 | isWinnable'1 :: GHC.Prim.Addr# | ||
1764 | {- HasNoCafRefs, Unfolding: (" | cs: "#) -} | ||
1765 | 57dbea7ccb37666dfb68fcfa3dff9762 | ||
1766 | isWinnable'2 :: GHC.Prim.Addr# | ||
1767 | {- HasNoCafRefs, Unfolding: ("rs: "#) -} | ||
1768 | 71761c5fe498240bc954dabe79b454e6 | ||
1769 | isWinnable1 :: [GHC.Types.Int] | ||
1770 | {- Unfolding: (GHC.Enum.eftInt 1# 8#) -} | ||
1771 | 467cbfe928e10131bc536f2ce6cf6555 | ||
1772 | lo1 :: GHC.Integer.Type.Integer | ||
1773 | {- HasNoCafRefs, Unfolding: (8) -} | ||
1774 | 0443aef89f06e494b8dfadf33d9b611e | ||
1775 | lo2 :: GHC.Integer.Type.Integer | ||
1776 | {- HasNoCafRefs, Unfolding: (0) -} | ||
1777 | 0adafc7a5420e905b14b79259f36d2e1 | ||
1778 | lo8 :: [GHC.Integer.Type.Integer] | ||
1779 | {- Unfolding: (GHC.Enum.enumDeltaToInteger1 Main.lo2 Main.lo1) -} | ||
1780 | ffd93c9b62998844891c6b51af4852f6 | ||
1781 | main :: GHC.Types.IO () | ||
1782 | {- Arity: 1, | ||
1783 | Unfolding: (GHC.IO.Handle.Text.hPutStr' | ||
1784 | GHC.IO.Handle.FD.stdout | ||
1785 | Main.main1 | ||
1786 | GHC.Types.True) -} | ||
1787 | b44f955f71899d698edc98e351205550 | ||
1788 | main1 :: [GHC.Types.Char] | ||
1789 | {- Unfolding: (GHC.CString.unpackCString# Main.main2) -} | ||
1790 | 53f8d0c8d47323120ec6d4f5391ba8c2 | ||
1791 | main2 :: GHC.Prim.Addr# | ||
1792 | {- HasNoCafRefs, Unfolding: ("Hi"#) -} | ||
1793 | 2c40f682ff1df8a53498b11b24c5d251 | ||
1794 | main3 :: | ||
1795 | GHC.Prim.State# GHC.Prim.RealWorld | ||
1796 | -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #) | ||
1797 | {- Arity: 1, | ||
1798 | Unfolding: (GHC.TopHandler.runMainIO1 @ () Main.main) -} | ||
1799 | 2d937b3fb3901c9c5d6305d505827f2c | ||
1800 | mapDiag :: | ||
1801 | ((GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
1802 | -> (GHC.Types.Int, GHC.Types.Int) | ||
1803 | -> Data.Matrix.Matrix a | ||
1804 | -> Data.Matrix.Matrix a | ||
1805 | {- Arity: 3, | ||
1806 | Strictness: <L,C(C1(U))><L,1*U(1*U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>m, | ||
1807 | Inline: [2], | ||
1808 | Unfolding: InlineRule (3, True, False) | ||
1809 | (\ @ a | ||
1810 | (w1 :: (GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
1811 | (w2 :: (GHC.Types.Int, GHC.Types.Int)) | ||
1812 | (w3 :: Data.Matrix.Matrix a) -> | ||
1813 | case w3 of ww { Data.Matrix.M ww1 ww2 ww3 ww4 ww5 ww6 -> | ||
1814 | case Main.$wmapDiag | ||
1815 | @ a | ||
1816 | w1 | ||
1817 | w2 | ||
1818 | ww1 | ||
1819 | ww2 | ||
1820 | ww3 | ||
1821 | ww4 | ||
1822 | ww5 | ||
1823 | ww6 of ww7 { (#,,,,,#) ww8 ww9 ww10 ww11 ww12 ww13 -> | ||
1824 | Data.Matrix.M @ a ww8 ww9 ww10 ww11 ww12 ww13 } }) -} | ||
1825 | a2bd0b58bc5bd047e61382be16fefa00 | ||
1826 | mapQueensPath :: | ||
1827 | ((GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
1828 | -> (GHC.Types.Int, GHC.Types.Int) | ||
1829 | -> Data.Matrix.Matrix a | ||
1830 | -> Data.Matrix.Matrix a | ||
1831 | {- Arity: 3, | ||
1832 | Strictness: <L,C(C1(U))><S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>m, | ||
1833 | Unfolding: InlineRule (0, True, True) Main.mapRowColDiag -} | ||
1834 | dde1889dbbf5fb38f0e445cb95f5a9de | ||
1835 | mapRowColDiag :: | ||
1836 | ((GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
1837 | -> (GHC.Types.Int, GHC.Types.Int) | ||
1838 | -> Data.Matrix.Matrix a | ||
1839 | -> Data.Matrix.Matrix a | ||
1840 | {- Arity: 3, | ||
1841 | Strictness: <L,C(C1(U))><S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>m, | ||
1842 | Inline: [2], | ||
1843 | Unfolding: InlineRule (3, True, False) | ||
1844 | (\ @ a | ||
1845 | (w1 :: (GHC.Types.Int, GHC.Types.Int) -> a -> a) | ||
1846 | (w2 :: (GHC.Types.Int, GHC.Types.Int)) | ||
1847 | (w3 :: Data.Matrix.Matrix a) -> | ||
1848 | case w2 of ww { (,) ww1 ww2 -> | ||
1849 | case w3 of ww3 { Data.Matrix.M ww4 ww5 ww6 ww7 ww8 ww9 -> | ||
1850 | case Main.$wmapRowColDiag | ||
1851 | @ a | ||
1852 | w1 | ||
1853 | ww1 | ||
1854 | ww2 | ||
1855 | ww4 | ||
1856 | ww5 | ||
1857 | ww6 | ||
1858 | ww7 | ||
1859 | ww8 | ||
1860 | ww9 of ww10 { (#,,,,,#) ww11 ww12 ww13 ww14 ww15 ww16 -> | ||
1861 | Data.Matrix.M @ a ww11 ww12 ww13 ww14 ww15 ww16 } } }) -} | ||
1862 | 3943af003e5304a56a545bd865552127 | ||
1863 | markX :: | ||
1864 | (GHC.Types.Int, GHC.Types.Int) | ||
1865 | -> Data.Matrix.Matrix Main.Square -> Data.Matrix.Matrix Main.Square | ||
1866 | {- Arity: 2, | ||
1867 | Strictness: <L,1*U(1*U(U),1*U(U))><S(SSSSSL),1*U(U,U,U,U,U,1*U(U,U,U))>m, | ||
1868 | Inline: [2], | ||
1869 | Unfolding: InlineRule (2, True, False) | ||
1870 | (\ (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
1871 | (w2 :: Data.Matrix.Matrix Main.Square) -> | ||
1872 | case w2 of ww { Data.Matrix.M ww1 ww2 ww3 ww4 ww5 ww6 -> | ||
1873 | case Main.$wmarkX | ||
1874 | w1 | ||
1875 | ww1 | ||
1876 | ww2 | ||
1877 | ww3 | ||
1878 | ww4 | ||
1879 | ww5 | ||
1880 | ww6 of ww7 { (#,,,,,#) ww8 ww9 ww10 ww11 ww12 ww13 -> | ||
1881 | Data.Matrix.M @ Main.Square ww8 ww9 ww10 ww11 ww12 ww13 } }) -} | ||
1882 | ccc5982bcd77bdad61f876f8d47c5d65 | ||
1883 | markX1 :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.ST.ST s () | ||
1884 | {- Arity: 2, Strictness: <B,U><B,U>x -} | ||
1885 | fbac9f9d7dbb4ee97cbb457aa87ce63d | ||
1886 | markX2 :: | ||
1887 | GHC.Prim.Int# | ||
1888 | -> GHC.ST.ST | ||
1889 | GHC.Prim.RealWorld | ||
1890 | (Data.Vector.Generic.Base.Mutable | ||
1891 | Data.Vector.Vector | ||
1892 | (Control.Monad.Primitive.PrimState (GHC.ST.ST GHC.Prim.RealWorld)) | ||
1893 | Main.Square) | ||
1894 | {- Arity: 1, Strictness: <B,U>x -} | ||
1895 | 6f1bb09ac67d2a25f7bab55f41ed00c2 | ||
1896 | nextAvail :: | ||
1897 | Data.Matrix.Matrix Main.Square -> (GHC.Types.Int, GHC.Types.Int) | ||
1898 | {- Arity: 1, Strictness: <S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>m, | ||
1899 | Inline: [2], | ||
1900 | Unfolding: InlineRule (1, True, False) | ||
1901 | (\ (w1 :: Data.Matrix.Matrix Main.Square) -> | ||
1902 | case w1 of ww { Data.Matrix.M ww1 ww2 ww3 ww4 ww5 ww6 -> | ||
1903 | Main.$wnextAvail ww1 ww2 ww3 ww4 ww5 ww6 }) -} | ||
1904 | 90afd4aefbf3357e19db3aabe3af6a43 | ||
1905 | nextAvail1 :: | ||
1906 | GHC.Prim.Int# | ||
1907 | -> GHC.Types.Int -> GHC.Prim.Int# -> GHC.Prim.Int# -> Main.Square | ||
1908 | {- Arity: 4, Strictness: <B,U><B,1*U(U)><B,U><B,U>x -} | ||
1909 | a26d623557216e1e594771f61834fea6 | ||
1910 | nextAvail_$sscanBoard :: | ||
1911 | Main.Square | ||
1912 | -> Data.Matrix.Matrix Main.Square | ||
1913 | -> [(GHC.Types.Int, GHC.Types.Int)] | ||
1914 | {- Arity: 2, Strictness: <L,U><L,U(U,U,U,U,U,U(U,A,U))>, | ||
1915 | Unfolding: (\ (s1 :: Main.Square) | ||
1916 | (b :: Data.Matrix.Matrix Main.Square) -> | ||
1917 | letrec { | ||
1918 | go1 :: [(GHC.Types.Int, GHC.Types.Int)] | ||
1919 | -> [(GHC.Types.Int, GHC.Types.Int)] | ||
1920 | {- Arity: 1, Strictness: <S,1*U> -} | ||
1921 | = \ (ds :: [(GHC.Types.Int, GHC.Types.Int)]) -> | ||
1922 | case ds of wild { | ||
1923 | [] -> GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int) | ||
1924 | : y ys | ||
1925 | -> case y of wild1 { (,) i j -> | ||
1926 | case b of wild2 { Data.Matrix.M dt dt1 dt2 dt3 dt4 ds1 -> | ||
1927 | case i of wild3 { GHC.Types.I# x -> | ||
1928 | case GHC.Prim.># x dt of lwild { | ||
1929 | DEFAULT | ||
1930 | -> case j of wild4 { GHC.Types.I# x1 -> | ||
1931 | case GHC.Prim.># x1 dt1 of lwild1 { | ||
1932 | DEFAULT | ||
1933 | -> case GHC.Prim.<# x 1# of lwild2 { | ||
1934 | DEFAULT | ||
1935 | -> case GHC.Prim.<# x1 1# of lwild3 { | ||
1936 | DEFAULT | ||
1937 | -> case ds1 of wild5 { Data.Vector.Vector dt5 dt6 dt7 -> | ||
1938 | case GHC.Prim.indexArray# | ||
1939 | @ Main.Square | ||
1940 | dt7 | ||
1941 | (GHC.Prim.-# | ||
1942 | (GHC.Prim.+# | ||
1943 | dt5 | ||
1944 | (GHC.Prim.+# | ||
1945 | (GHC.Prim.*# | ||
1946 | (GHC.Prim.-# | ||
1947 | (GHC.Prim.+# x dt2) | ||
1948 | 1#) | ||
1949 | dt4) | ||
1950 | (GHC.Prim.+# x1 dt3))) | ||
1951 | 1#) of ds2 { Unit# ipv -> | ||
1952 | case ipv of wild6 { | ||
1953 | Main.X | ||
1954 | -> case s1 of wild7 { | ||
1955 | DEFAULT -> go1 ys | ||
1956 | Main.X | ||
1957 | -> GHC.Types.: | ||
1958 | @ (GHC.Types.Int, GHC.Types.Int) | ||
1959 | wild1 | ||
1960 | (go1 ys) } | ||
1961 | Main.Qu | ||
1962 | -> case s1 of wild7 { | ||
1963 | DEFAULT -> go1 ys | ||
1964 | Main.Qu | ||
1965 | -> GHC.Types.: | ||
1966 | @ (GHC.Types.Int, GHC.Types.Int) | ||
1967 | wild1 | ||
1968 | (go1 ys) } | ||
1969 | Main.O | ||
1970 | -> case s1 of wild7 { | ||
1971 | DEFAULT -> go1 ys | ||
1972 | Main.O | ||
1973 | -> GHC.Types.: | ||
1974 | @ (GHC.Types.Int, GHC.Types.Int) | ||
1975 | wild1 | ||
1976 | (go1 ys) } | ||
1977 | Main.T | ||
1978 | -> case s1 of wild7 { | ||
1979 | DEFAULT -> go1 ys | ||
1980 | Main.T | ||
1981 | -> GHC.Types.: | ||
1982 | @ (GHC.Types.Int, GHC.Types.Int) | ||
1983 | wild1 | ||
1984 | (go1 ys) } } } } | ||
1985 | 1# | ||
1986 | -> case Main.nextAvail1 x wild4 dt dt1 | ||
1987 | ret_ty [(GHC.Types.Int, GHC.Types.Int)] | ||
1988 | of {} } | ||
1989 | 1# | ||
1990 | -> case Main.nextAvail1 x wild4 dt dt1 | ||
1991 | ret_ty [(GHC.Types.Int, GHC.Types.Int)] | ||
1992 | of {} } | ||
1993 | 1# | ||
1994 | -> case Main.nextAvail1 x wild4 dt dt1 | ||
1995 | ret_ty [(GHC.Types.Int, GHC.Types.Int)] | ||
1996 | of {} } } | ||
1997 | 1# | ||
1998 | -> case Main.nextAvail1 x j dt dt1 | ||
1999 | ret_ty [(GHC.Types.Int, GHC.Types.Int)] | ||
2000 | of {} } } } } } | ||
2001 | } in | ||
2002 | go1 Main.allPositions) -} | ||
2003 | 9b22cd0f7cfb9cd8b86e53ed152db98f | ||
2004 | nextOpen :: p -> a | ||
2005 | {- Arity: 1, Strictness: <B,A>x, | ||
2006 | Unfolding: InlineRule (1, True, True) | ||
2007 | (\ @ p @ a (board :: p) -> | ||
2008 | GHC.Err.undefined | ||
2009 | @ 'GHC.Types.LiftedRep | ||
2010 | @ a | ||
2011 | Main.nextOpen1 | ||
2012 | `cast` | ||
2013 | (Sym (GHC.Classes.N:IP[0] | ||
2014 | <"callStack">_N <GHC.Stack.Types.CallStack>_N))) -} | ||
2015 | 450959e15bf14abeeae70c90d6596591 | ||
2016 | nextOpen1 :: GHC.Stack.Types.CallStack | ||
2017 | {- Strictness: m2, | ||
2018 | Unfolding: (GHC.Stack.Types.PushCallStack | ||
2019 | Main.nextOpen10 | ||
2020 | Main.nextOpen2 | ||
2021 | GHC.Stack.Types.EmptyCallStack) -} | ||
2022 | 5492e46593435c9a8973ddd52706b901 | ||
2023 | nextOpen10 :: [GHC.Types.Char] | ||
2024 | {- Unfolding: (GHC.CString.unpackCString# Main.nextOpen11) -} | ||
2025 | 34b8814fdedc12dbe175ff398d732cc2 | ||
2026 | nextOpen11 :: GHC.Prim.Addr# | ||
2027 | {- HasNoCafRefs, Unfolding: ("undefined"#) -} | ||
2028 | a81645774aa6aa0b43d03ce34ef4c86a | ||
2029 | nextOpen2 :: GHC.Stack.Types.SrcLoc | ||
2030 | {- Strictness: m, | ||
2031 | Unfolding: (GHC.Stack.Types.SrcLoc | ||
2032 | Main.nextOpen9 | ||
2033 | Main.nextOpen8 | ||
2034 | Main.nextOpen6 | ||
2035 | Main.nextOpen5 | ||
2036 | Main.nextOpen4 | ||
2037 | Main.nextOpen5 | ||
2038 | Main.nextOpen3) -} | ||
2039 | 37396b724a9489f0796e02e1242a57cc | ||
2040 | nextOpen3 :: GHC.Types.Int | ||
2041 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 27#) -} | ||
2042 | 5039b2582c970c303d6ee00f1c72dc6f | ||
2043 | nextOpen4 :: GHC.Types.Int | ||
2044 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 18#) -} | ||
2045 | d043f6099eb02d490a19ed2603a147cd | ||
2046 | nextOpen5 :: GHC.Types.Int | ||
2047 | {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 342#) -} | ||
2048 | 8bc53bd5eeee20b8c206a89fe19f2abc | ||
2049 | nextOpen6 :: [GHC.Types.Char] | ||
2050 | {- Unfolding: (GHC.CString.unpackCString# Main.nextOpen7) -} | ||
2051 | 28b6eb018de3ac0765c6732596651e21 | ||
2052 | nextOpen7 :: GHC.Prim.Addr# | ||
2053 | {- HasNoCafRefs, Unfolding: ("src/Main.hs"#) -} | ||
2054 | 5dd9ebfbcdd27071fb3e5331918a8ed9 | ||
2055 | nextOpen8 :: [GHC.Types.Char] | ||
2056 | {- Unfolding: (GHC.CString.unpackCString# Main.$trModule2) -} | ||
2057 | 3ec743b2d53b5b2446ef227872aec674 | ||
2058 | nextOpen9 :: [GHC.Types.Char] | ||
2059 | {- Unfolding: (GHC.CString.unpackCString# Main.$trModule4) -} | ||
2060 | b1f6f256d4e82d1580367898de062da9 | ||
2061 | onBoard :: t1 -> (t1 -> t2) -> t2 | ||
2062 | {- Arity: 2, HasNoCafRefs, Strictness: <L,U><C(S),1*C1(U)>, | ||
2063 | Unfolding: InlineRule (2, True, True) | ||
2064 | (\ @ t @ t1 (b :: t) (f :: t -> t1) -> f b) -} | ||
2065 | 17b16fcc71d1f9f19009053f733f93b0 | ||
2066 | openPositions :: | ||
2067 | Data.Matrix.Matrix Main.Square -> [(GHC.Types.Int, GHC.Types.Int)] | ||
2068 | {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U(U,A,U))>, | ||
2069 | Unfolding: InlineRule (1, True, False) | ||
2070 | (\ (b :: Data.Matrix.Matrix Main.Square) -> | ||
2071 | Main.nextAvail_$sscanBoard Main.O b) -} | ||
2072 | 2f3c3f4fd9297ce38b2338795b8625fa | ||
2073 | ops :: | ||
2074 | [(GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2075 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer)] | ||
2076 | {- Strictness: m2, | ||
2077 | Unfolding: (GHC.Types.: | ||
2078 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2079 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2080 | Main.ops8 | ||
2081 | Main.ops1) -} | ||
2082 | 914d1c5f1d08a2df33b0758b8b1cbe4f | ||
2083 | ops1 :: | ||
2084 | [(GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2085 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer)] | ||
2086 | {- Strictness: m2, | ||
2087 | Unfolding: (GHC.Types.: | ||
2088 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2089 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2090 | Main.ops7 | ||
2091 | Main.ops2) -} | ||
2092 | c483f6d1360d80e682071a7fada76a2d | ||
2093 | ops2 :: | ||
2094 | [(GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2095 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer)] | ||
2096 | {- Strictness: m2, | ||
2097 | Unfolding: (GHC.Types.: | ||
2098 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2099 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2100 | Main.ops6 | ||
2101 | Main.ops3) -} | ||
2102 | e2bf2566ee0d78e121b68669d2a45b5a | ||
2103 | ops3 :: | ||
2104 | [(GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2105 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer)] | ||
2106 | {- Strictness: m2, | ||
2107 | Unfolding: (GHC.Types.: | ||
2108 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2109 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2110 | Main.ops4 | ||
2111 | (GHC.Types.[] | ||
2112 | @ (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2113 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer))) -} | ||
2114 | 4fc14e12c3c545bccf354dfd328363ef | ||
2115 | ops4 :: | ||
2116 | (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2117 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2118 | {- Strictness: m, Unfolding: ((Main.ops_b, Main.ops_b)) -} | ||
2119 | af67511cc9af72bbbf64830e0e5f2972 | ||
2120 | ops5 :: GHC.Integer.Type.Integer | ||
2121 | {- HasNoCafRefs, Unfolding: (1) -} | ||
2122 | 4d05bf6b8d38e4924dbd1cd6fe91b988 | ||
2123 | ops6 :: | ||
2124 | (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2125 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2126 | {- Strictness: m, Unfolding: ((Main.ops_b, Main.ops_a)) -} | ||
2127 | c8c7d7c9f7f07dc27b1d7488f2d275c4 | ||
2128 | ops7 :: | ||
2129 | (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2130 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2131 | {- Strictness: m, Unfolding: ((Main.ops_a, Main.ops_b)) -} | ||
2132 | 659cc3ca049e6155e4c40a7665798164 | ||
2133 | ops8 :: | ||
2134 | (GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer, | ||
2135 | GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer) | ||
2136 | {- Strictness: m, Unfolding: ((Main.ops_a, Main.ops_a)) -} | ||
2137 | 230c5a60ddf52a851259b0f5fb0b5a02 | ||
2138 | ops_a :: GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer | ||
2139 | {- Arity: 1, Strictness: <S,1*U>, | ||
2140 | Unfolding: InlineRule (1, True, False) | ||
2141 | (\ (ds :: GHC.Integer.Type.Integer) -> | ||
2142 | GHC.Integer.Type.plusInteger ds Main.ops5) -} | ||
2143 | 0977965361a29e006d3b014e5d47953c | ||
2144 | ops_b :: GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer | ||
2145 | {- Arity: 1, Unfolding: (Main.$ssubtract1 Main.ops5) -} | ||
2146 | fa63260e1ced6c325a6fea254285a86e | ||
2147 | placeQueen :: | ||
2148 | (GHC.Types.Int, GHC.Types.Int) | ||
2149 | -> Data.Matrix.Matrix Main.Square -> Data.Matrix.Matrix Main.Square | ||
2150 | {- Arity: 2, | ||
2151 | Strictness: <S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>m, | ||
2152 | Inline: [2], | ||
2153 | Unfolding: InlineRule (2, True, False) | ||
2154 | (\ (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
2155 | (w2 :: Data.Matrix.Matrix Main.Square) -> | ||
2156 | case w1 of ww { (,) ww1 ww2 -> | ||
2157 | case w2 of ww3 { Data.Matrix.M ww4 ww5 ww6 ww7 ww8 ww9 -> | ||
2158 | case Main.$wplaceQueen | ||
2159 | ww1 | ||
2160 | ww2 | ||
2161 | ww4 | ||
2162 | ww5 | ||
2163 | ww6 | ||
2164 | ww7 | ||
2165 | ww8 | ||
2166 | ww9 of ww10 { (#,,,,,#) ww11 ww12 ww13 ww14 ww15 ww16 -> | ||
2167 | Data.Matrix.M @ Main.Square ww11 ww12 ww13 ww14 ww15 ww16 } } }) -} | ||
2168 | a1f12d5025f58ce56d4a5a7bc26dc092 | ||
2169 | placeQueen' :: | ||
2170 | (GHC.Types.Int, GHC.Types.Int) | ||
2171 | -> Data.Matrix.Matrix Main.Square -> Data.Matrix.Matrix Main.Square | ||
2172 | {- Arity: 2, | ||
2173 | Strictness: <S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>m, | ||
2174 | Inline: [2], | ||
2175 | Unfolding: InlineRule (2, True, False) | ||
2176 | (\ (w1 :: (GHC.Types.Int, GHC.Types.Int)) | ||
2177 | (w2 :: Data.Matrix.Matrix Main.Square) -> | ||
2178 | case w1 of ww { (,) ww1 ww2 -> | ||
2179 | case w2 of ww3 { Data.Matrix.M ww4 ww5 ww6 ww7 ww8 ww9 -> | ||
2180 | case Main.$wplaceQueen' | ||
2181 | ww1 | ||
2182 | ww2 | ||
2183 | ww4 | ||
2184 | ww5 | ||
2185 | ww6 | ||
2186 | ww7 | ||
2187 | ww8 | ||
2188 | ww9 of ww10 { (#,,,,,#) ww11 ww12 ww13 ww14 ww15 ww16 -> | ||
2189 | Data.Matrix.M @ Main.Square ww11 ww12 ww13 ww14 ww15 ww16 } } }) -} | ||
2190 | dc257c873b9f55af4a5cae0dd796842c | ||
2191 | placeQueen'_fX :: p1 -> p2 -> Main.Square | ||
2192 | {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>, | ||
2193 | Unfolding: InlineRule (2, True, True) | ||
2194 | (\ @ p @ p1 (ds :: p) (x :: p1) -> Main.X) -} | ||
2195 | 5867a72be54a53ffdbc791900449f7cf | ||
2196 | placeQueen1 :: | ||
2197 | (GHC.Types.Int, GHC.Types.Int) -> Main.Square -> Main.Square | ||
2198 | {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>, | ||
2199 | Unfolding: InlineRule (2, True, True) | ||
2200 | (\ (ds :: (GHC.Types.Int, GHC.Types.Int)) (ds1 :: Main.Square) -> | ||
2201 | Main.X) -} | ||
2202 | 6e29c0608e46d228d79be61c7b198415 | ||
2203 | queenAllowed :: | ||
2204 | (GHC.Types.Int, GHC.Types.Int) | ||
2205 | -> Data.Matrix.Matrix Main.Square -> GHC.Types.Bool | ||
2206 | {- Arity: 2, | ||
2207 | Strictness: <S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>, | ||
2208 | Unfolding: InlineRule (0, True, True) | ||
2209 | Main.queenAllowed1 | ||
2210 | `cast` | ||
2211 | (<(GHC.Types.Int, GHC.Types.Int)>_R | ||
2212 | ->_R <Data.Matrix.Matrix Main.Square>_R | ||
2213 | ->_R Data.Semigroup.Internal.N:All[0]) -} | ||
2214 | 78aa727ec6070d1a0a93c445c121ee95 | ||
2215 | queenAllowed1 :: | ||
2216 | (GHC.Types.Int, GHC.Types.Int) | ||
2217 | -> Data.Matrix.Matrix Main.Square -> Data.Semigroup.Internal.All | ||
2218 | {- Arity: 2, | ||
2219 | Strictness: <S,1*U(U(U),U(U))><S(SSSSSL),1*U(U,U,U,U,U,U(U,A,U))>, | ||
2220 | Unfolding: InlineRule (2, True, False) | ||
2221 | (\ (p :: (GHC.Types.Int, GHC.Types.Int)) | ||
2222 | (b :: Data.Matrix.Matrix Main.Square) -> | ||
2223 | letrec { | ||
2224 | go1 :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)] | ||
2225 | -> Data.Semigroup.Internal.All | ||
2226 | <join 1> {- Arity: 1 -} | ||
2227 | = \ (ds :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)]) -> | ||
2228 | case ds of wild { | ||
2229 | [] | ||
2230 | -> GHC.Types.True `cast` (Sym (Data.Semigroup.Internal.N:All[0])) | ||
2231 | : y ys | ||
2232 | -> case y of wild1 { (,) ds1 y1 -> | ||
2233 | case y1 of wild2 { | ||
2234 | DEFAULT | ||
2235 | -> GHC.Types.False `cast` (Sym (Data.Semigroup.Internal.N:All[0])) | ||
2236 | Main.O -> go1 ys } } } | ||
2237 | } in | ||
2238 | go1 (Main.getRowColDiag @ Main.Square p b)) -} | ||
2239 | ac3e1db14fd14a5e30c664cab50d0fee | ||
2240 | s :: | ||
2241 | Data.Matrix.Matrix Main.Square -> [Data.Matrix.Matrix Main.Square] | ||
2242 | {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U(U,A,U))>, | ||
2243 | Unfolding: (\ (b :: Data.Matrix.Matrix Main.Square) -> | ||
2244 | letrec { | ||
2245 | go1 :: [(GHC.Types.Int, GHC.Types.Int)] | ||
2246 | -> [Data.Matrix.Matrix Main.Square] | ||
2247 | {- Arity: 1, Strictness: <S,1*U> -} | ||
2248 | = \ (ds :: [(GHC.Types.Int, GHC.Types.Int)]) -> | ||
2249 | case ds of wild { | ||
2250 | [] -> GHC.Types.[] @ (Data.Matrix.Matrix Main.Square) | ||
2251 | : y ys | ||
2252 | -> case y of ww { (,) ww1 ww2 -> | ||
2253 | case b of ww3 { Data.Matrix.M ww4 ww5 ww6 ww7 ww8 ww9 -> | ||
2254 | let { | ||
2255 | exit :: [Data.Matrix.Matrix Main.Square] <join 0> | ||
2256 | = GHC.Types.: | ||
2257 | @ (Data.Matrix.Matrix Main.Square) | ||
2258 | (case Main.$wplaceQueen | ||
2259 | ww1 | ||
2260 | ww2 | ||
2261 | ww4 | ||
2262 | ww5 | ||
2263 | ww6 | ||
2264 | ww7 | ||
2265 | ww8 | ||
2266 | ww9 of ww10 { (#,,,,,#) ww11 ww12 ww13 ww14 ww15 ww16 -> | ||
2267 | Data.Matrix.M @ Main.Square ww11 ww12 ww13 ww14 ww15 ww16 }) | ||
2268 | (go1 ys) | ||
2269 | } in | ||
2270 | let { | ||
2271 | exit1 :: [Data.Matrix.Matrix Main.Square] <join 0> = go1 ys | ||
2272 | } in | ||
2273 | letrec { | ||
2274 | go2 :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)] | ||
2275 | -> [Data.Matrix.Matrix Main.Square] | ||
2276 | <join 1> {- Arity: 1, Strictness: <S,1*U> -} | ||
2277 | = \ (ds1 :: [((GHC.Types.Int, GHC.Types.Int), Main.Square)]) -> | ||
2278 | case ds1 of wild1 { | ||
2279 | [] -> exit | ||
2280 | : y1 ys1 | ||
2281 | -> case y1 of wild2 { (,) ds2 y2 -> | ||
2282 | case y2 of wild3 { DEFAULT -> exit1 Main.O -> go2 ys1 } } } | ||
2283 | } in | ||
2284 | go2 | ||
2285 | (Main.$wgetRowColDiag | ||
2286 | @ Main.Square | ||
2287 | ww1 | ||
2288 | ww2 | ||
2289 | ww4 | ||
2290 | ww5 | ||
2291 | ww6 | ||
2292 | ww7 | ||
2293 | ww8 | ||
2294 | ww9) } } } | ||
2295 | } in | ||
2296 | go1 (Main.nextAvail_$sscanBoard Main.O b)) -} | ||
2297 | 136bbc6ab363482125bcf62d8afaf976 | ||
2298 | scanBoard :: | ||
2299 | GHC.Classes.Eq a => | ||
2300 | a -> Data.Matrix.Matrix a -> [(GHC.Types.Int, GHC.Types.Int)] | ||
2301 | {- Arity: 3, | ||
2302 | Strictness: <L,U(C(C1(U)),A)><L,U><L,U(U,U,U,U,U,U(U,A,U))>, | ||
2303 | Unfolding: (\ @ a | ||
2304 | ($dEq :: GHC.Classes.Eq a) | ||
2305 | (s1 :: a) | ||
2306 | (b :: Data.Matrix.Matrix a) -> | ||
2307 | letrec { | ||
2308 | go1 :: [(GHC.Types.Int, GHC.Types.Int)] | ||
2309 | -> [(GHC.Types.Int, GHC.Types.Int)] | ||
2310 | {- Arity: 1, Strictness: <S,1*U> -} | ||
2311 | = \ (ds :: [(GHC.Types.Int, GHC.Types.Int)]) -> | ||
2312 | case ds of wild { | ||
2313 | [] -> GHC.Types.[] @ (GHC.Types.Int, GHC.Types.Int) | ||
2314 | : y ys | ||
2315 | -> case y of wild1 { (,) i j -> | ||
2316 | case GHC.Classes.== | ||
2317 | @ a | ||
2318 | $dEq | ||
2319 | (case b of wild2 { Data.Matrix.M dt dt1 dt2 dt3 dt4 ds1 -> | ||
2320 | case i of wild3 { GHC.Types.I# x -> | ||
2321 | let { | ||
2322 | $j :: a <join 0> {- Strictness: x -} | ||
2323 | = GHC.Err.error | ||
2324 | @ 'GHC.Types.LiftedRep | ||
2325 | @ a | ||
2326 | Main.getColL3 | ||
2327 | `cast` | ||
2328 | (Sym (GHC.Classes.N:IP[0] | ||
2329 | <"callStack">_N <GHC.Stack.Types.CallStack>_N)) | ||
2330 | (GHC.CString.unpackAppendCString# | ||
2331 | Main.getColL2 | ||
2332 | (GHC.Base.++_$s++ | ||
2333 | @ GHC.Types.Char | ||
2334 | (GHC.CString.unpackAppendCString# | ||
2335 | Main.getColL1 | ||
2336 | (case Data.Matrix.$wsizeStr | ||
2337 | dt | ||
2338 | (GHC.Types.I# | ||
2339 | dt1) of ww2 { (#,#) ww3 ww4 -> | ||
2340 | GHC.Base.++_$s++ | ||
2341 | @ GHC.Types.Char | ||
2342 | Main.scanBoard_z | ||
2343 | ww3 | ||
2344 | ww4 })) | ||
2345 | GHC.Show.$fShow(,)4 | ||
2346 | (case GHC.Show.$wshowSignedInt | ||
2347 | 0# | ||
2348 | x | ||
2349 | (GHC.Types.: | ||
2350 | @ GHC.Types.Char | ||
2351 | GHC.Show.showList__1 | ||
2352 | (GHC.Show.$fShow(,)_$sgo1 | ||
2353 | Main.getColL17 | ||
2354 | (\ (w2 :: GHC.Base.String)[OneShot] -> | ||
2355 | case j of ww2 { GHC.Types.I# ww3 -> | ||
2356 | case GHC.Show.$wshowSignedInt | ||
2357 | 0# | ||
2358 | ww3 | ||
2359 | w2 of ww4 { (#,#) ww5 ww6 -> | ||
2360 | GHC.Types.: | ||
2361 | @ GHC.Types.Char | ||
2362 | ww5 | ||
2363 | ww6 } }) | ||
2364 | (GHC.Types.[] | ||
2365 | @ GHC.Show.ShowS))) of ww4 { (#,#) ww5 ww6 -> | ||
2366 | GHC.Types.: @ GHC.Types.Char ww5 ww6 }))) | ||
2367 | } in | ||
2368 | case GHC.Prim.># x dt of lwild { | ||
2369 | DEFAULT | ||
2370 | -> case j of wild4 { GHC.Types.I# x1 -> | ||
2371 | case GHC.Prim.># x1 dt1 of lwild1 { | ||
2372 | DEFAULT | ||
2373 | -> case GHC.Prim.<# x 1# of lwild2 { | ||
2374 | DEFAULT | ||
2375 | -> case GHC.Prim.<# x1 1# of lwild3 { | ||
2376 | DEFAULT | ||
2377 | -> case ds1 of wild5 { Data.Vector.Vector dt5 dt6 dt7 -> | ||
2378 | case GHC.Prim.indexArray# | ||
2379 | @ a | ||
2380 | dt7 | ||
2381 | (GHC.Prim.-# | ||
2382 | (GHC.Prim.+# | ||
2383 | dt5 | ||
2384 | (GHC.Prim.+# | ||
2385 | (GHC.Prim.*# | ||
2386 | (GHC.Prim.-# | ||
2387 | (GHC.Prim.+# x dt2) | ||
2388 | 1#) | ||
2389 | dt4) | ||
2390 | (GHC.Prim.+# x1 dt3))) | ||
2391 | 1#) of ds2 { Unit# ipv -> | ||
2392 | ipv } } | ||
2393 | 1# -> $j } | ||
2394 | 1# -> $j } | ||
2395 | 1# -> $j } } | ||
2396 | 1# -> $j } } }) | ||
2397 | s1 of wild2 { | ||
2398 | GHC.Types.False -> go1 ys | ||
2399 | GHC.Types.True | ||
2400 | -> GHC.Types.: | ||
2401 | @ (GHC.Types.Int, GHC.Types.Int) | ||
2402 | wild1 | ||
2403 | (go1 ys) } } } | ||
2404 | } in | ||
2405 | go1 Main.allPositions) -} | ||
2406 | ba4d206db78a5cdc12cbc5213b6efa45 | ||
2407 | scanBoard1 :: GHC.Prim.Addr# | ||
2408 | {- HasNoCafRefs, Unfolding: (" matrix."#) -} | ||
2409 | dd473e64c7fd49868fbead83c5d37d7c | ||
2410 | scanBoard_z :: [GHC.Types.Char] | ||
2411 | {- Unfolding: (GHC.CString.unpackCString# Main.scanBoard1) -} | ||
2412 | 730d75bde90b9d85a238ada997a4cedb | ||
2413 | solve :: | ||
2414 | (GHC.Classes.Ord t, GHC.Num.Num t) => | ||
2415 | t -> [Data.Matrix.Matrix Main.Square] | ||
2416 | {- Arity: 3, | ||
2417 | Strictness: <S(LLC(C(S))LLLLL),1*U(1*U(C(C1(U)),A),A,1*C1(C1(U)),A,1*C1(C1(U)),A,A,A)><L,U(A,C(C1(U)),A,A,A,A,C(U))><L,U>, | ||
2418 | Inline: [2], | ||
2419 | Unfolding: InlineRule (3, True, False) | ||
2420 | (\ @ t (w1 :: GHC.Classes.Ord t) (w2 :: GHC.Num.Num t) (w3 :: t) -> | ||
2421 | case w1 of ww { GHC.Classes.C:Ord ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 -> | ||
2422 | Main.$wsolve @ t ww1 ww3 ww5 w2 w3 }) -} | ||
2423 | bf34852c4989cdd534e45ed8798f1cc1 | ||
2424 | solve1 :: [Data.Matrix.Matrix Main.Square] | ||
2425 | {- Unfolding: (GHC.Base.++ | ||
2426 | @ (Data.Matrix.Matrix Main.Square) | ||
2427 | (Main.solve2 Main.initBoard) | ||
2428 | (GHC.Types.[] @ (Data.Matrix.Matrix Main.Square))) -} | ||
2429 | e1e9b7845f8b9b9dd2f50c649384dcaf | ||
2430 | solve2 :: | ||
2431 | Data.Matrix.Matrix Main.Square -> [Data.Matrix.Matrix Main.Square] | ||
2432 | {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U(U,A,U))>, | ||
2433 | Unfolding: (\ (b :: Data.Matrix.Matrix Main.Square) -> | ||
2434 | GHC.Base.map | ||
2435 | @ (GHC.Types.Int, GHC.Types.Int) | ||
2436 | @ (Data.Matrix.Matrix Main.Square) | ||
2437 | (\ (p :: (GHC.Types.Int, GHC.Types.Int)) -> Main.placeQueen p b) | ||
2438 | (Main.nextAvail_$sscanBoard Main.O b)) -} | ||
2439 | c184a666bff831ddddecc4b865dff3df | ||
2440 | solve_go :: | ||
2441 | [Data.Matrix.Matrix Main.Square] | ||
2442 | -> [Data.Matrix.Matrix Main.Square] | ||
2443 | {- Arity: 1, Strictness: <S,1*U> -} | ||
2444 | 7a7a57dbb9af5196c25058ab4a74fa7b | ||
2445 | w :: [Data.Matrix.Matrix Main.Square] | ||
2446 | {- Unfolding: (Main.$wwinners' | ||
2447 | @ GHC.Integer.Type.Integer | ||
2448 | Main.initBoard) -} | ||
2449 | 4574f1ee92f6f2d180c8f1d8da82d147 | ||
2450 | winnable :: a | ||
2451 | {- Strictness: x -} | ||
2452 | a4252cdb991d662ac35e424364aba1a6 | ||
2453 | winners :: | ||
2454 | (GHC.Classes.Eq p, GHC.Num.Num p) => | ||
2455 | p | ||
2456 | -> [Data.Matrix.Matrix Main.Square] | ||
2457 | -> [Data.Matrix.Matrix Main.Square] | ||
2458 | {- Arity: 4, | ||
2459 | Strictness: <S(C(C(S))L),1*U(C(C1(U)),A)><L,U(A,C(C1(U)),A,A,A,A,C(U))><L,U><S,1*U>, | ||
2460 | Inline: [2], | ||
2461 | Unfolding: InlineRule (4, True, False) | ||
2462 | (\ @ p | ||
2463 | (w1 :: GHC.Classes.Eq p) | ||
2464 | (w2 :: GHC.Num.Num p) | ||
2465 | (w3 :: p) | ||
2466 | (w4 :: [Data.Matrix.Matrix Main.Square]) -> | ||
2467 | case w1 of ww { GHC.Classes.C:Eq ww1 ww2 -> | ||
2468 | Main.$wwinners @ p ww1 w2 w3 w4 }) -} | ||
2469 | 3fcc2cf6408df510d613a4b754ea3680 | ||
2470 | winners' :: | ||
2471 | p | ||
2472 | -> Data.Matrix.Matrix Main.Square | ||
2473 | -> [Data.Matrix.Matrix Main.Square] | ||
2474 | {- Arity: 2, Strictness: <L,A><L,U(U,U,U,U,U,U(U,A,U))>, | ||
2475 | Inline: [2], | ||
2476 | Unfolding: InlineRule (2, True, True) | ||
2477 | (\ @ p (w1 :: p) (w2 :: Data.Matrix.Matrix Main.Square) -> | ||
2478 | Main.$wwinners' @ p w2) -} | ||
2479 | 8c043a319c68bd087e5d8643d5ba7d9d | ||
2480 | winners1 :: | ||
2481 | [Data.Matrix.Matrix Main.Square] | ||
2482 | -> [Data.Matrix.Matrix Main.Square] | ||
2483 | {- Arity: 1, Strictness: <S,1*U> -} | ||
2484 | 3b9dd7cd56ddb92f4921e9fe96b4dd83 | ||
2485 | winners_go :: | ||
2486 | [Data.Matrix.Matrix Main.Square] | ||
2487 | -> [Data.Matrix.Matrix Main.Square] | ||
2488 | {- Arity: 1, Strictness: <S,1*U> -} | ||
2489 | instance GHC.Classes.Eq [Main.Square] = Main.$fEqSquare | ||
2490 | instance GHC.Show.Show [Main.Square] = Main.$fShowSquare | ||
2491 | "SPEC scanBoard @ Square" forall ($dEq :: GHC.Classes.Eq | ||
2492 | Main.Square) | ||
2493 | Main.scanBoard @ Main.Square $dEq = Main.nextAvail_$sscanBoard | ||
2494 | "SPEC/Main $fEq(,) @ Int @ Int" [orphan] forall (v1 :: GHC.Classes.Eq | ||
2495 | GHC.Types.Int) | ||
2496 | (v :: GHC.Classes.Eq GHC.Types.Int) | ||
2497 | GHC.Classes.$fEq(,) @ GHC.Types.Int @ GHC.Types.Int v v1 | ||
2498 | = Main.$s$fEq(,) | ||
2499 | "SPEC/Main $fEq(,)_$c/= @ Int @ Int" [orphan] forall ($dEq1 :: GHC.Classes.Eq | ||
2500 | GHC.Types.Int) | ||
2501 | ($dEq :: GHC.Classes.Eq GHC.Types.Int) | ||
2502 | GHC.Classes.$fEq(,)_$c/= @ GHC.Types.Int @ GHC.Types.Int $dEq $dEq1 | ||
2503 | = Main.$s$fEq(,)_$s$fEq(,)_$c/= | ||
2504 | "SPEC/Main subtract @ Int" [orphan] forall ($dNum :: GHC.Num.Num | ||
2505 | GHC.Types.Int) | ||
2506 | GHC.Num.subtract @ GHC.Types.Int $dNum = Main.$ssubtract | ||
2507 | "SPEC/Main subtract @ Integer" [orphan] forall ($dNum :: GHC.Num.Num | ||
2508 | GHC.Integer.Type.Integer) | ||
2509 | GHC.Num.subtract @ GHC.Integer.Type.Integer $dNum | ||
2510 | = Main.$ssubtract1 | ||
2511 | trusted: none | ||
2512 | require own pkg trusted: False | ||
2513 | module header: | ||
2514 | Nothing | ||
2515 | declaration docs: | ||
2516 | arg docs: | ||
2517 | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/autogen/Paths_8queens.hs b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/autogen/Paths_8queens.hs deleted file mode 100644 index 7e16751..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/autogen/Paths_8queens.hs +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | {-# LANGUAGE CPP #-} | ||
2 | {-# LANGUAGE NoRebindableSyntax #-} | ||
3 | {-# OPTIONS_GHC -fno-warn-missing-import-lists #-} | ||
4 | module Paths_8queens ( | ||
5 | version, | ||
6 | getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, | ||
7 | getDataFileName, getSysconfDir | ||
8 | ) where | ||
9 | |||
10 | import qualified Control.Exception as Exception | ||
11 | import Data.Version (Version(..)) | ||
12 | import System.Environment (getEnv) | ||
13 | import Prelude | ||
14 | |||
15 | #if defined(VERSION_base) | ||
16 | |||
17 | #if MIN_VERSION_base(4,0,0) | ||
18 | catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a | ||
19 | #else | ||
20 | catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a | ||
21 | #endif | ||
22 | |||
23 | #else | ||
24 | catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a | ||
25 | #endif | ||
26 | catchIO = Exception.catch | ||
27 | |||
28 | version :: Version | ||
29 | version = Version [0,1,0,0] [] | ||
30 | bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath | ||
31 | |||
32 | bindir = "/home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin" | ||
33 | libdir = "/home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/8queens-0.1.0.0-1f9e2RemoZD8IyN03WXtS0-8queens" | ||
34 | dynlibdir = "/home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5" | ||
35 | datadir = "/home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/8queens-0.1.0.0" | ||
36 | libexecdir = "/home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/libexec/x86_64-linux-ghc-8.6.5/8queens-0.1.0.0" | ||
37 | sysconfdir = "/home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/etc" | ||
38 | |||
39 | getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath | ||
40 | getBinDir = catchIO (getEnv "8queens_bindir") (\_ -> return bindir) | ||
41 | getLibDir = catchIO (getEnv "8queens_libdir") (\_ -> return libdir) | ||
42 | getDynLibDir = catchIO (getEnv "8queens_dynlibdir") (\_ -> return dynlibdir) | ||
43 | getDataDir = catchIO (getEnv "8queens_datadir") (\_ -> return datadir) | ||
44 | getLibexecDir = catchIO (getEnv "8queens_libexecdir") (\_ -> return libexecdir) | ||
45 | getSysconfDir = catchIO (getEnv "8queens_sysconfdir") (\_ -> return sysconfdir) | ||
46 | |||
47 | getDataFileName :: FilePath -> IO FilePath | ||
48 | getDataFileName name = do | ||
49 | dir <- getDataDir | ||
50 | return (dir ++ "/" ++ name) | ||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/autogen/cabal_macros.h b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/autogen/cabal_macros.h deleted file mode 100644 index 80cc9e2..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/8queens/autogen/cabal_macros.h +++ /dev/null | |||
@@ -1,195 +0,0 @@ | |||
1 | /* DO NOT EDIT: This file is automatically generated by Cabal */ | ||
2 | |||
3 | /* package 8queens-0.1.0.0 */ | ||
4 | #ifndef VERSION_8queens | ||
5 | #define VERSION_8queens "0.1.0.0" | ||
6 | #endif /* VERSION_8queens */ | ||
7 | #ifndef MIN_VERSION_8queens | ||
8 | #define MIN_VERSION_8queens(major1,major2,minor) (\ | ||
9 | (major1) < 0 || \ | ||
10 | (major1) == 0 && (major2) < 1 || \ | ||
11 | (major1) == 0 && (major2) == 1 && (minor) <= 0) | ||
12 | #endif /* MIN_VERSION_8queens */ | ||
13 | |||
14 | /* package base-4.12.0.0 */ | ||
15 | #ifndef VERSION_base | ||
16 | #define VERSION_base "4.12.0.0" | ||
17 | #endif /* VERSION_base */ | ||
18 | #ifndef MIN_VERSION_base | ||
19 | #define MIN_VERSION_base(major1,major2,minor) (\ | ||
20 | (major1) < 4 || \ | ||
21 | (major1) == 4 && (major2) < 12 || \ | ||
22 | (major1) == 4 && (major2) == 12 && (minor) <= 0) | ||
23 | #endif /* MIN_VERSION_base */ | ||
24 | |||
25 | /* package lens-4.17.1 */ | ||
26 | #ifndef VERSION_lens | ||
27 | #define VERSION_lens "4.17.1" | ||
28 | #endif /* VERSION_lens */ | ||
29 | #ifndef MIN_VERSION_lens | ||
30 | #define MIN_VERSION_lens(major1,major2,minor) (\ | ||
31 | (major1) < 4 || \ | ||
32 | (major1) == 4 && (major2) < 17 || \ | ||
33 | (major1) == 4 && (major2) == 17 && (minor) <= 1) | ||
34 | #endif /* MIN_VERSION_lens */ | ||
35 | |||
36 | /* package linear-1.20.9 */ | ||
37 | #ifndef VERSION_linear | ||
38 | #define VERSION_linear "1.20.9" | ||
39 | #endif /* VERSION_linear */ | ||
40 | #ifndef MIN_VERSION_linear | ||
41 | #define MIN_VERSION_linear(major1,major2,minor) (\ | ||
42 | (major1) < 1 || \ | ||
43 | (major1) == 1 && (major2) < 20 || \ | ||
44 | (major1) == 1 && (major2) == 20 && (minor) <= 9) | ||
45 | #endif /* MIN_VERSION_linear */ | ||
46 | |||
47 | /* package matrix-0.3.6.1 */ | ||
48 | #ifndef VERSION_matrix | ||
49 | #define VERSION_matrix "0.3.6.1" | ||
50 | #endif /* VERSION_matrix */ | ||
51 | #ifndef MIN_VERSION_matrix | ||
52 | #define MIN_VERSION_matrix(major1,major2,minor) (\ | ||
53 | (major1) < 0 || \ | ||
54 | (major1) == 0 && (major2) < 3 || \ | ||
55 | (major1) == 0 && (major2) == 3 && (minor) <= 6) | ||
56 | #endif /* MIN_VERSION_matrix */ | ||
57 | |||
58 | /* package random-1.1 */ | ||
59 | #ifndef VERSION_random | ||
60 | #define VERSION_random "1.1" | ||
61 | #endif /* VERSION_random */ | ||
62 | #ifndef MIN_VERSION_random | ||
63 | #define MIN_VERSION_random(major1,major2,minor) (\ | ||
64 | (major1) < 1 || \ | ||
65 | (major1) == 1 && (major2) < 1 || \ | ||
66 | (major1) == 1 && (major2) == 1 && (minor) <= 0) | ||
67 | #endif /* MIN_VERSION_random */ | ||
68 | |||
69 | /* package vector-0.12.0.3 */ | ||
70 | #ifndef VERSION_vector | ||
71 | #define VERSION_vector "0.12.0.3" | ||
72 | #endif /* VERSION_vector */ | ||
73 | #ifndef MIN_VERSION_vector | ||
74 | #define MIN_VERSION_vector(major1,major2,minor) (\ | ||
75 | (major1) < 0 || \ | ||
76 | (major1) == 0 && (major2) < 12 || \ | ||
77 | (major1) == 0 && (major2) == 12 && (minor) <= 0) | ||
78 | #endif /* MIN_VERSION_vector */ | ||
79 | |||
80 | /* tool gcc-6.3.0 */ | ||
81 | #ifndef TOOL_VERSION_gcc | ||
82 | #define TOOL_VERSION_gcc "6.3.0" | ||
83 | #endif /* TOOL_VERSION_gcc */ | ||
84 | #ifndef MIN_TOOL_VERSION_gcc | ||
85 | #define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | ||
86 | (major1) < 6 || \ | ||
87 | (major1) == 6 && (major2) < 3 || \ | ||
88 | (major1) == 6 && (major2) == 3 && (minor) <= 0) | ||
89 | #endif /* MIN_TOOL_VERSION_gcc */ | ||
90 | |||
91 | /* tool ghc-8.6.5 */ | ||
92 | #ifndef TOOL_VERSION_ghc | ||
93 | #define TOOL_VERSION_ghc "8.6.5" | ||
94 | #endif /* TOOL_VERSION_ghc */ | ||
95 | #ifndef MIN_TOOL_VERSION_ghc | ||
96 | #define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | ||
97 | (major1) < 8 || \ | ||
98 | (major1) == 8 && (major2) < 6 || \ | ||
99 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
100 | #endif /* MIN_TOOL_VERSION_ghc */ | ||
101 | |||
102 | /* tool ghc-pkg-8.6.5 */ | ||
103 | #ifndef TOOL_VERSION_ghc_pkg | ||
104 | #define TOOL_VERSION_ghc_pkg "8.6.5" | ||
105 | #endif /* TOOL_VERSION_ghc_pkg */ | ||
106 | #ifndef MIN_TOOL_VERSION_ghc_pkg | ||
107 | #define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | ||
108 | (major1) < 8 || \ | ||
109 | (major1) == 8 && (major2) < 6 || \ | ||
110 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
111 | #endif /* MIN_TOOL_VERSION_ghc_pkg */ | ||
112 | |||
113 | /* tool haddock-2.22.0 */ | ||
114 | #ifndef TOOL_VERSION_haddock | ||
115 | #define TOOL_VERSION_haddock "2.22.0" | ||
116 | #endif /* TOOL_VERSION_haddock */ | ||
117 | #ifndef MIN_TOOL_VERSION_haddock | ||
118 | #define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | ||
119 | (major1) < 2 || \ | ||
120 | (major1) == 2 && (major2) < 22 || \ | ||
121 | (major1) == 2 && (major2) == 22 && (minor) <= 0) | ||
122 | #endif /* MIN_TOOL_VERSION_haddock */ | ||
123 | |||
124 | /* tool happy-1.19.9 */ | ||
125 | #ifndef TOOL_VERSION_happy | ||
126 | #define TOOL_VERSION_happy "1.19.9" | ||
127 | #endif /* TOOL_VERSION_happy */ | ||
128 | #ifndef MIN_TOOL_VERSION_happy | ||
129 | #define MIN_TOOL_VERSION_happy(major1,major2,minor) (\ | ||
130 | (major1) < 1 || \ | ||
131 | (major1) == 1 && (major2) < 19 || \ | ||
132 | (major1) == 1 && (major2) == 19 && (minor) <= 9) | ||
133 | #endif /* MIN_TOOL_VERSION_happy */ | ||
134 | |||
135 | /* tool hpc-0.67 */ | ||
136 | #ifndef TOOL_VERSION_hpc | ||
137 | #define TOOL_VERSION_hpc "0.67" | ||
138 | #endif /* TOOL_VERSION_hpc */ | ||
139 | #ifndef MIN_TOOL_VERSION_hpc | ||
140 | #define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | ||
141 | (major1) < 0 || \ | ||
142 | (major1) == 0 && (major2) < 67 || \ | ||
143 | (major1) == 0 && (major2) == 67 && (minor) <= 0) | ||
144 | #endif /* MIN_TOOL_VERSION_hpc */ | ||
145 | |||
146 | /* tool hsc2hs-0.68.5 */ | ||
147 | #ifndef TOOL_VERSION_hsc2hs | ||
148 | #define TOOL_VERSION_hsc2hs "0.68.5" | ||
149 | #endif /* TOOL_VERSION_hsc2hs */ | ||
150 | #ifndef MIN_TOOL_VERSION_hsc2hs | ||
151 | #define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | ||
152 | (major1) < 0 || \ | ||
153 | (major1) == 0 && (major2) < 68 || \ | ||
154 | (major1) == 0 && (major2) == 68 && (minor) <= 5) | ||
155 | #endif /* MIN_TOOL_VERSION_hsc2hs */ | ||
156 | |||
157 | /* tool pkg-config-0.29 */ | ||
158 | #ifndef TOOL_VERSION_pkg_config | ||
159 | #define TOOL_VERSION_pkg_config "0.29" | ||
160 | #endif /* TOOL_VERSION_pkg_config */ | ||
161 | #ifndef MIN_TOOL_VERSION_pkg_config | ||
162 | #define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | ||
163 | (major1) < 0 || \ | ||
164 | (major1) == 0 && (major2) < 29 || \ | ||
165 | (major1) == 0 && (major2) == 29 && (minor) <= 0) | ||
166 | #endif /* MIN_TOOL_VERSION_pkg_config */ | ||
167 | |||
168 | /* tool runghc-8.6.5 */ | ||
169 | #ifndef TOOL_VERSION_runghc | ||
170 | #define TOOL_VERSION_runghc "8.6.5" | ||
171 | #endif /* TOOL_VERSION_runghc */ | ||
172 | #ifndef MIN_TOOL_VERSION_runghc | ||
173 | #define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ | ||
174 | (major1) < 8 || \ | ||
175 | (major1) == 8 && (major2) < 6 || \ | ||
176 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
177 | #endif /* MIN_TOOL_VERSION_runghc */ | ||
178 | |||
179 | /* tool strip-2.28 */ | ||
180 | #ifndef TOOL_VERSION_strip | ||
181 | #define TOOL_VERSION_strip "2.28" | ||
182 | #endif /* TOOL_VERSION_strip */ | ||
183 | #ifndef MIN_TOOL_VERSION_strip | ||
184 | #define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | ||
185 | (major1) < 2 || \ | ||
186 | (major1) == 2 && (major2) < 28 || \ | ||
187 | (major1) == 2 && (major2) == 28 && (minor) <= 0) | ||
188 | #endif /* MIN_TOOL_VERSION_strip */ | ||
189 | |||
190 | #ifndef CURRENT_COMPONENT_ID | ||
191 | #define CURRENT_COMPONENT_ID "8queens-0.1.0.0-1f9e2RemoZD8IyN03WXtS0-8queens" | ||
192 | #endif /* CURRENT_COMPONENT_ID */ | ||
193 | #ifndef CURRENT_PACKAGE_VERSION | ||
194 | #define CURRENT_PACKAGE_VERSION "0.1.0.0" | ||
195 | #endif /* CURRENT_PACKAGE_VERSION */ | ||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/package.conf.inplace/package.cache b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/package.conf.inplace/package.cache deleted file mode 100644 index b3cae5c..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/package.conf.inplace/package.cache +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/package.conf.inplace/package.cache.lock b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/package.conf.inplace/package.cache.lock deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/package.conf.inplace/package.cache.lock +++ /dev/null | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup-config b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup-config deleted file mode 100644 index 81c2525..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup-config +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-build-caches/exe-8queens b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-build-caches/exe-8queens deleted file mode 100644 index a41b89b..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-build-caches/exe-8queens +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-cabal-mod b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-cabal-mod deleted file mode 100644 index 13bd001..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-cabal-mod +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-config-cache b/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-config-cache deleted file mode 100644 index 4a70cec..0000000 --- a/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/stack-config-cache +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/ghci/3a535720/cabal_macros.h b/.stack-work/ghci/3a535720/cabal_macros.h deleted file mode 100644 index 38daada..0000000 --- a/.stack-work/ghci/3a535720/cabal_macros.h +++ /dev/null | |||
@@ -1,198 +0,0 @@ | |||
1 | /* DO NOT EDIT: This file is automatically generated by Cabal */ | ||
2 | |||
3 | /* package 8queens-0.1.0.0 */ | ||
4 | #ifndef VERSION_8queens | ||
5 | #define VERSION_8queens "0.1.0.0" | ||
6 | #endif /* VERSION_8queens */ | ||
7 | #ifndef MIN_VERSION_8queens | ||
8 | #define MIN_VERSION_8queens(major1,major2,minor) (\ | ||
9 | (major1) < 0 || \ | ||
10 | (major1) == 0 && (major2) < 1 || \ | ||
11 | (major1) == 0 && (major2) == 1 && (minor) <= 0) | ||
12 | #endif /* MIN_VERSION_8queens */ | ||
13 | |||
14 | /* package base-4.12.0.0 */ | ||
15 | #ifndef VERSION_base | ||
16 | #define VERSION_base "4.12.0.0" | ||
17 | #endif /* VERSION_base */ | ||
18 | #ifndef MIN_VERSION_base | ||
19 | #define MIN_VERSION_base(major1,major2,minor) (\ | ||
20 | (major1) < 4 || \ | ||
21 | (major1) == 4 && (major2) < 12 || \ | ||
22 | (major1) == 4 && (major2) == 12 && (minor) <= 0) | ||
23 | #endif /* MIN_VERSION_base */ | ||
24 | |||
25 | /* package lens-4.17.1 */ | ||
26 | #ifndef VERSION_lens | ||
27 | #define VERSION_lens "4.17.1" | ||
28 | #endif /* VERSION_lens */ | ||
29 | #ifndef MIN_VERSION_lens | ||
30 | #define MIN_VERSION_lens(major1,major2,minor) (\ | ||
31 | (major1) < 4 || \ | ||
32 | (major1) == 4 && (major2) < 17 || \ | ||
33 | (major1) == 4 && (major2) == 17 && (minor) <= 1) | ||
34 | #endif /* MIN_VERSION_lens */ | ||
35 | |||
36 | /* package linear-1.20.9 */ | ||
37 | #ifndef VERSION_linear | ||
38 | #define VERSION_linear "1.20.9" | ||
39 | #endif /* VERSION_linear */ | ||
40 | #ifndef MIN_VERSION_linear | ||
41 | #define MIN_VERSION_linear(major1,major2,minor) (\ | ||
42 | (major1) < 1 || \ | ||
43 | (major1) == 1 && (major2) < 20 || \ | ||
44 | (major1) == 1 && (major2) == 20 && (minor) <= 9) | ||
45 | #endif /* MIN_VERSION_linear */ | ||
46 | |||
47 | /* package matrix-0.3.6.1 */ | ||
48 | #ifndef VERSION_matrix | ||
49 | #define VERSION_matrix "0.3.6.1" | ||
50 | #endif /* VERSION_matrix */ | ||
51 | #ifndef MIN_VERSION_matrix | ||
52 | #define MIN_VERSION_matrix(major1,major2,minor) (\ | ||
53 | (major1) < 0 || \ | ||
54 | (major1) == 0 && (major2) < 3 || \ | ||
55 | (major1) == 0 && (major2) == 3 && (minor) <= 6) | ||
56 | #endif /* MIN_VERSION_matrix */ | ||
57 | |||
58 | /* package random-1.1 */ | ||
59 | #ifndef VERSION_random | ||
60 | #define VERSION_random "1.1" | ||
61 | #endif /* VERSION_random */ | ||
62 | #ifndef MIN_VERSION_random | ||
63 | #define MIN_VERSION_random(major1,major2,minor) (\ | ||
64 | (major1) < 1 || \ | ||
65 | (major1) == 1 && (major2) < 1 || \ | ||
66 | (major1) == 1 && (major2) == 1 && (minor) <= 0) | ||
67 | #endif /* MIN_VERSION_random */ | ||
68 | |||
69 | /* package vector-0.12.0.3 */ | ||
70 | #ifndef VERSION_vector | ||
71 | #define VERSION_vector "0.12.0.3" | ||
72 | #endif /* VERSION_vector */ | ||
73 | #ifndef MIN_VERSION_vector | ||
74 | #define MIN_VERSION_vector(major1,major2,minor) (\ | ||
75 | (major1) < 0 || \ | ||
76 | (major1) == 0 && (major2) < 12 || \ | ||
77 | (major1) == 0 && (major2) == 12 && (minor) <= 0) | ||
78 | #endif /* MIN_VERSION_vector */ | ||
79 | |||
80 | /* tool gcc-6.3.0 */ | ||
81 | #ifndef TOOL_VERSION_gcc | ||
82 | #define TOOL_VERSION_gcc "6.3.0" | ||
83 | #endif /* TOOL_VERSION_gcc */ | ||
84 | #ifndef MIN_TOOL_VERSION_gcc | ||
85 | #define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | ||
86 | (major1) < 6 || \ | ||
87 | (major1) == 6 && (major2) < 3 || \ | ||
88 | (major1) == 6 && (major2) == 3 && (minor) <= 0) | ||
89 | #endif /* MIN_TOOL_VERSION_gcc */ | ||
90 | |||
91 | /* tool ghc-8.6.5 */ | ||
92 | #ifndef TOOL_VERSION_ghc | ||
93 | #define TOOL_VERSION_ghc "8.6.5" | ||
94 | #endif /* TOOL_VERSION_ghc */ | ||
95 | #ifndef MIN_TOOL_VERSION_ghc | ||
96 | #define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | ||
97 | (major1) < 8 || \ | ||
98 | (major1) == 8 && (major2) < 6 || \ | ||
99 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
100 | #endif /* MIN_TOOL_VERSION_ghc */ | ||
101 | |||
102 | /* tool ghc-pkg-8.6.5 */ | ||
103 | #ifndef TOOL_VERSION_ghc_pkg | ||
104 | #define TOOL_VERSION_ghc_pkg "8.6.5" | ||
105 | #endif /* TOOL_VERSION_ghc_pkg */ | ||
106 | #ifndef MIN_TOOL_VERSION_ghc_pkg | ||
107 | #define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | ||
108 | (major1) < 8 || \ | ||
109 | (major1) == 8 && (major2) < 6 || \ | ||
110 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
111 | #endif /* MIN_TOOL_VERSION_ghc_pkg */ | ||
112 | |||
113 | /* tool haddock-2.22.0 */ | ||
114 | #ifndef TOOL_VERSION_haddock | ||
115 | #define TOOL_VERSION_haddock "2.22.0" | ||
116 | #endif /* TOOL_VERSION_haddock */ | ||
117 | #ifndef MIN_TOOL_VERSION_haddock | ||
118 | #define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | ||
119 | (major1) < 2 || \ | ||
120 | (major1) == 2 && (major2) < 22 || \ | ||
121 | (major1) == 2 && (major2) == 22 && (minor) <= 0) | ||
122 | #endif /* MIN_TOOL_VERSION_haddock */ | ||
123 | |||
124 | /* tool happy-1.19.9 */ | ||
125 | #ifndef TOOL_VERSION_happy | ||
126 | #define TOOL_VERSION_happy "1.19.9" | ||
127 | #endif /* TOOL_VERSION_happy */ | ||
128 | #ifndef MIN_TOOL_VERSION_happy | ||
129 | #define MIN_TOOL_VERSION_happy(major1,major2,minor) (\ | ||
130 | (major1) < 1 || \ | ||
131 | (major1) == 1 && (major2) < 19 || \ | ||
132 | (major1) == 1 && (major2) == 19 && (minor) <= 9) | ||
133 | #endif /* MIN_TOOL_VERSION_happy */ | ||
134 | |||
135 | /* tool hpc-0.67 */ | ||
136 | #ifndef TOOL_VERSION_hpc | ||
137 | #define TOOL_VERSION_hpc "0.67" | ||
138 | #endif /* TOOL_VERSION_hpc */ | ||
139 | #ifndef MIN_TOOL_VERSION_hpc | ||
140 | #define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | ||
141 | (major1) < 0 || \ | ||
142 | (major1) == 0 && (major2) < 67 || \ | ||
143 | (major1) == 0 && (major2) == 67 && (minor) <= 0) | ||
144 | #endif /* MIN_TOOL_VERSION_hpc */ | ||
145 | |||
146 | /* tool hsc2hs-0.68.5 */ | ||
147 | #ifndef TOOL_VERSION_hsc2hs | ||
148 | #define TOOL_VERSION_hsc2hs "0.68.5" | ||
149 | #endif /* TOOL_VERSION_hsc2hs */ | ||
150 | #ifndef MIN_TOOL_VERSION_hsc2hs | ||
151 | #define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | ||
152 | (major1) < 0 || \ | ||
153 | (major1) == 0 && (major2) < 68 || \ | ||
154 | (major1) == 0 && (major2) == 68 && (minor) <= 5) | ||
155 | #endif /* MIN_TOOL_VERSION_hsc2hs */ | ||
156 | |||
157 | /* tool pkg-config-0.29 */ | ||
158 | #ifndef TOOL_VERSION_pkg_config | ||
159 | #define TOOL_VERSION_pkg_config "0.29" | ||
160 | #endif /* TOOL_VERSION_pkg_config */ | ||
161 | #ifndef MIN_TOOL_VERSION_pkg_config | ||
162 | #define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | ||
163 | (major1) < 0 || \ | ||
164 | (major1) == 0 && (major2) < 29 || \ | ||
165 | (major1) == 0 && (major2) == 29 && (minor) <= 0) | ||
166 | #endif /* MIN_TOOL_VERSION_pkg_config */ | ||
167 | |||
168 | /* tool runghc-8.6.5 */ | ||
169 | #ifndef TOOL_VERSION_runghc | ||
170 | #define TOOL_VERSION_runghc "8.6.5" | ||
171 | #endif /* TOOL_VERSION_runghc */ | ||
172 | #ifndef MIN_TOOL_VERSION_runghc | ||
173 | #define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ | ||
174 | (major1) < 8 || \ | ||
175 | (major1) == 8 && (major2) < 6 || \ | ||
176 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
177 | #endif /* MIN_TOOL_VERSION_runghc */ | ||
178 | |||
179 | /* tool strip-2.28 */ | ||
180 | #ifndef TOOL_VERSION_strip | ||
181 | #define TOOL_VERSION_strip "2.28" | ||
182 | #endif /* TOOL_VERSION_strip */ | ||
183 | #ifndef MIN_TOOL_VERSION_strip | ||
184 | #define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | ||
185 | (major1) < 2 || \ | ||
186 | (major1) == 2 && (major2) < 28 || \ | ||
187 | (major1) == 2 && (major2) == 28 && (minor) <= 0) | ||
188 | #endif /* MIN_TOOL_VERSION_strip */ | ||
189 | |||
190 | #ifndef CURRENT_COMPONENT_ID | ||
191 | #define CURRENT_COMPONENT_ID "8queens-0.1.0.0-1f9e2RemoZD8IyN03WXtS0-8queens" | ||
192 | #endif /* CURRENT_COMPONENT_ID */ | ||
193 | #ifndef CURRENT_PACKAGE_VERSION | ||
194 | #define CURRENT_PACKAGE_VERSION "0.1.0.0" | ||
195 | #endif /* CURRENT_PACKAGE_VERSION */ | ||
196 | |||
197 | #undef CURRENT_PACKAGE_KEY | ||
198 | #undef CURRENT_COMPONENT_ID | ||
diff --git a/.stack-work/ghci/429a2e1e/cabal_macros.h b/.stack-work/ghci/429a2e1e/cabal_macros.h deleted file mode 100644 index cca702a..0000000 --- a/.stack-work/ghci/429a2e1e/cabal_macros.h +++ /dev/null | |||
@@ -1,176 +0,0 @@ | |||
1 | /* DO NOT EDIT: This file is automatically generated by Cabal */ | ||
2 | |||
3 | /* package 8queens-0.1.0.0 */ | ||
4 | #ifndef VERSION_8queens | ||
5 | #define VERSION_8queens "0.1.0.0" | ||
6 | #endif /* VERSION_8queens */ | ||
7 | #ifndef MIN_VERSION_8queens | ||
8 | #define MIN_VERSION_8queens(major1,major2,minor) (\ | ||
9 | (major1) < 0 || \ | ||
10 | (major1) == 0 && (major2) < 1 || \ | ||
11 | (major1) == 0 && (major2) == 1 && (minor) <= 0) | ||
12 | #endif /* MIN_VERSION_8queens */ | ||
13 | |||
14 | /* package base-4.12.0.0 */ | ||
15 | #ifndef VERSION_base | ||
16 | #define VERSION_base "4.12.0.0" | ||
17 | #endif /* VERSION_base */ | ||
18 | #ifndef MIN_VERSION_base | ||
19 | #define MIN_VERSION_base(major1,major2,minor) (\ | ||
20 | (major1) < 4 || \ | ||
21 | (major1) == 4 && (major2) < 12 || \ | ||
22 | (major1) == 4 && (major2) == 12 && (minor) <= 0) | ||
23 | #endif /* MIN_VERSION_base */ | ||
24 | |||
25 | /* package lens-4.17.1 */ | ||
26 | #ifndef VERSION_lens | ||
27 | #define VERSION_lens "4.17.1" | ||
28 | #endif /* VERSION_lens */ | ||
29 | #ifndef MIN_VERSION_lens | ||
30 | #define MIN_VERSION_lens(major1,major2,minor) (\ | ||
31 | (major1) < 4 || \ | ||
32 | (major1) == 4 && (major2) < 17 || \ | ||
33 | (major1) == 4 && (major2) == 17 && (minor) <= 1) | ||
34 | #endif /* MIN_VERSION_lens */ | ||
35 | |||
36 | /* package linear-1.20.9 */ | ||
37 | #ifndef VERSION_linear | ||
38 | #define VERSION_linear "1.20.9" | ||
39 | #endif /* VERSION_linear */ | ||
40 | #ifndef MIN_VERSION_linear | ||
41 | #define MIN_VERSION_linear(major1,major2,minor) (\ | ||
42 | (major1) < 1 || \ | ||
43 | (major1) == 1 && (major2) < 20 || \ | ||
44 | (major1) == 1 && (major2) == 20 && (minor) <= 9) | ||
45 | #endif /* MIN_VERSION_linear */ | ||
46 | |||
47 | /* package matrix-0.3.6.1 */ | ||
48 | #ifndef VERSION_matrix | ||
49 | #define VERSION_matrix "0.3.6.1" | ||
50 | #endif /* VERSION_matrix */ | ||
51 | #ifndef MIN_VERSION_matrix | ||
52 | #define MIN_VERSION_matrix(major1,major2,minor) (\ | ||
53 | (major1) < 0 || \ | ||
54 | (major1) == 0 && (major2) < 3 || \ | ||
55 | (major1) == 0 && (major2) == 3 && (minor) <= 6) | ||
56 | #endif /* MIN_VERSION_matrix */ | ||
57 | |||
58 | /* tool gcc-6.3.0 */ | ||
59 | #ifndef TOOL_VERSION_gcc | ||
60 | #define TOOL_VERSION_gcc "6.3.0" | ||
61 | #endif /* TOOL_VERSION_gcc */ | ||
62 | #ifndef MIN_TOOL_VERSION_gcc | ||
63 | #define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | ||
64 | (major1) < 6 || \ | ||
65 | (major1) == 6 && (major2) < 3 || \ | ||
66 | (major1) == 6 && (major2) == 3 && (minor) <= 0) | ||
67 | #endif /* MIN_TOOL_VERSION_gcc */ | ||
68 | |||
69 | /* tool ghc-8.6.5 */ | ||
70 | #ifndef TOOL_VERSION_ghc | ||
71 | #define TOOL_VERSION_ghc "8.6.5" | ||
72 | #endif /* TOOL_VERSION_ghc */ | ||
73 | #ifndef MIN_TOOL_VERSION_ghc | ||
74 | #define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | ||
75 | (major1) < 8 || \ | ||
76 | (major1) == 8 && (major2) < 6 || \ | ||
77 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
78 | #endif /* MIN_TOOL_VERSION_ghc */ | ||
79 | |||
80 | /* tool ghc-pkg-8.6.5 */ | ||
81 | #ifndef TOOL_VERSION_ghc_pkg | ||
82 | #define TOOL_VERSION_ghc_pkg "8.6.5" | ||
83 | #endif /* TOOL_VERSION_ghc_pkg */ | ||
84 | #ifndef MIN_TOOL_VERSION_ghc_pkg | ||
85 | #define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | ||
86 | (major1) < 8 || \ | ||
87 | (major1) == 8 && (major2) < 6 || \ | ||
88 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
89 | #endif /* MIN_TOOL_VERSION_ghc_pkg */ | ||
90 | |||
91 | /* tool haddock-2.22.0 */ | ||
92 | #ifndef TOOL_VERSION_haddock | ||
93 | #define TOOL_VERSION_haddock "2.22.0" | ||
94 | #endif /* TOOL_VERSION_haddock */ | ||
95 | #ifndef MIN_TOOL_VERSION_haddock | ||
96 | #define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | ||
97 | (major1) < 2 || \ | ||
98 | (major1) == 2 && (major2) < 22 || \ | ||
99 | (major1) == 2 && (major2) == 22 && (minor) <= 0) | ||
100 | #endif /* MIN_TOOL_VERSION_haddock */ | ||
101 | |||
102 | /* tool happy-1.19.9 */ | ||
103 | #ifndef TOOL_VERSION_happy | ||
104 | #define TOOL_VERSION_happy "1.19.9" | ||
105 | #endif /* TOOL_VERSION_happy */ | ||
106 | #ifndef MIN_TOOL_VERSION_happy | ||
107 | #define MIN_TOOL_VERSION_happy(major1,major2,minor) (\ | ||
108 | (major1) < 1 || \ | ||
109 | (major1) == 1 && (major2) < 19 || \ | ||
110 | (major1) == 1 && (major2) == 19 && (minor) <= 9) | ||
111 | #endif /* MIN_TOOL_VERSION_happy */ | ||
112 | |||
113 | /* tool hpc-0.67 */ | ||
114 | #ifndef TOOL_VERSION_hpc | ||
115 | #define TOOL_VERSION_hpc "0.67" | ||
116 | #endif /* TOOL_VERSION_hpc */ | ||
117 | #ifndef MIN_TOOL_VERSION_hpc | ||
118 | #define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | ||
119 | (major1) < 0 || \ | ||
120 | (major1) == 0 && (major2) < 67 || \ | ||
121 | (major1) == 0 && (major2) == 67 && (minor) <= 0) | ||
122 | #endif /* MIN_TOOL_VERSION_hpc */ | ||
123 | |||
124 | /* tool hsc2hs-0.68.5 */ | ||
125 | #ifndef TOOL_VERSION_hsc2hs | ||
126 | #define TOOL_VERSION_hsc2hs "0.68.5" | ||
127 | #endif /* TOOL_VERSION_hsc2hs */ | ||
128 | #ifndef MIN_TOOL_VERSION_hsc2hs | ||
129 | #define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | ||
130 | (major1) < 0 || \ | ||
131 | (major1) == 0 && (major2) < 68 || \ | ||
132 | (major1) == 0 && (major2) == 68 && (minor) <= 5) | ||
133 | #endif /* MIN_TOOL_VERSION_hsc2hs */ | ||
134 | |||
135 | /* tool pkg-config-0.29 */ | ||
136 | #ifndef TOOL_VERSION_pkg_config | ||
137 | #define TOOL_VERSION_pkg_config "0.29" | ||
138 | #endif /* TOOL_VERSION_pkg_config */ | ||
139 | #ifndef MIN_TOOL_VERSION_pkg_config | ||
140 | #define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | ||
141 | (major1) < 0 || \ | ||
142 | (major1) == 0 && (major2) < 29 || \ | ||
143 | (major1) == 0 && (major2) == 29 && (minor) <= 0) | ||
144 | #endif /* MIN_TOOL_VERSION_pkg_config */ | ||
145 | |||
146 | /* tool runghc-8.6.5 */ | ||
147 | #ifndef TOOL_VERSION_runghc | ||
148 | #define TOOL_VERSION_runghc "8.6.5" | ||
149 | #endif /* TOOL_VERSION_runghc */ | ||
150 | #ifndef MIN_TOOL_VERSION_runghc | ||
151 | #define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ | ||
152 | (major1) < 8 || \ | ||
153 | (major1) == 8 && (major2) < 6 || \ | ||
154 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
155 | #endif /* MIN_TOOL_VERSION_runghc */ | ||
156 | |||
157 | /* tool strip-2.28 */ | ||
158 | #ifndef TOOL_VERSION_strip | ||
159 | #define TOOL_VERSION_strip "2.28" | ||
160 | #endif /* TOOL_VERSION_strip */ | ||
161 | #ifndef MIN_TOOL_VERSION_strip | ||
162 | #define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | ||
163 | (major1) < 2 || \ | ||
164 | (major1) == 2 && (major2) < 28 || \ | ||
165 | (major1) == 2 && (major2) == 28 && (minor) <= 0) | ||
166 | #endif /* MIN_TOOL_VERSION_strip */ | ||
167 | |||
168 | #ifndef CURRENT_COMPONENT_ID | ||
169 | #define CURRENT_COMPONENT_ID "8queens-0.1.0.0-ELLkn1g8V07FUCj6OAQnSh-8queens" | ||
170 | #endif /* CURRENT_COMPONENT_ID */ | ||
171 | #ifndef CURRENT_PACKAGE_VERSION | ||
172 | #define CURRENT_PACKAGE_VERSION "0.1.0.0" | ||
173 | #endif /* CURRENT_PACKAGE_VERSION */ | ||
174 | |||
175 | #undef CURRENT_PACKAGE_KEY | ||
176 | #undef CURRENT_COMPONENT_ID | ||
diff --git a/.stack-work/ghci/c89d8de5/cabal_macros.h b/.stack-work/ghci/c89d8de5/cabal_macros.h deleted file mode 100644 index 6234f14..0000000 --- a/.stack-work/ghci/c89d8de5/cabal_macros.h +++ /dev/null | |||
@@ -1,198 +0,0 @@ | |||
1 | /* DO NOT EDIT: This file is automatically generated by Cabal */ | ||
2 | |||
3 | /* package 8queens-0.1.0.0 */ | ||
4 | #ifndef VERSION_8queens | ||
5 | #define VERSION_8queens "0.1.0.0" | ||
6 | #endif /* VERSION_8queens */ | ||
7 | #ifndef MIN_VERSION_8queens | ||
8 | #define MIN_VERSION_8queens(major1,major2,minor) (\ | ||
9 | (major1) < 0 || \ | ||
10 | (major1) == 0 && (major2) < 1 || \ | ||
11 | (major1) == 0 && (major2) == 1 && (minor) <= 0) | ||
12 | #endif /* MIN_VERSION_8queens */ | ||
13 | |||
14 | /* package base-4.12.0.0 */ | ||
15 | #ifndef VERSION_base | ||
16 | #define VERSION_base "4.12.0.0" | ||
17 | #endif /* VERSION_base */ | ||
18 | #ifndef MIN_VERSION_base | ||
19 | #define MIN_VERSION_base(major1,major2,minor) (\ | ||
20 | (major1) < 4 || \ | ||
21 | (major1) == 4 && (major2) < 12 || \ | ||
22 | (major1) == 4 && (major2) == 12 && (minor) <= 0) | ||
23 | #endif /* MIN_VERSION_base */ | ||
24 | |||
25 | /* package hmatrix-0.19.0.0 */ | ||
26 | #ifndef VERSION_hmatrix | ||
27 | #define VERSION_hmatrix "0.19.0.0" | ||
28 | #endif /* VERSION_hmatrix */ | ||
29 | #ifndef MIN_VERSION_hmatrix | ||
30 | #define MIN_VERSION_hmatrix(major1,major2,minor) (\ | ||
31 | (major1) < 0 || \ | ||
32 | (major1) == 0 && (major2) < 19 || \ | ||
33 | (major1) == 0 && (major2) == 19 && (minor) <= 0) | ||
34 | #endif /* MIN_VERSION_hmatrix */ | ||
35 | |||
36 | /* package lens-4.17.1 */ | ||
37 | #ifndef VERSION_lens | ||
38 | #define VERSION_lens "4.17.1" | ||
39 | #endif /* VERSION_lens */ | ||
40 | #ifndef MIN_VERSION_lens | ||
41 | #define MIN_VERSION_lens(major1,major2,minor) (\ | ||
42 | (major1) < 4 || \ | ||
43 | (major1) == 4 && (major2) < 17 || \ | ||
44 | (major1) == 4 && (major2) == 17 && (minor) <= 1) | ||
45 | #endif /* MIN_VERSION_lens */ | ||
46 | |||
47 | /* package linear-1.20.9 */ | ||
48 | #ifndef VERSION_linear | ||
49 | #define VERSION_linear "1.20.9" | ||
50 | #endif /* VERSION_linear */ | ||
51 | #ifndef MIN_VERSION_linear | ||
52 | #define MIN_VERSION_linear(major1,major2,minor) (\ | ||
53 | (major1) < 1 || \ | ||
54 | (major1) == 1 && (major2) < 20 || \ | ||
55 | (major1) == 1 && (major2) == 20 && (minor) <= 9) | ||
56 | #endif /* MIN_VERSION_linear */ | ||
57 | |||
58 | /* package matrix-0.3.6.1 */ | ||
59 | #ifndef VERSION_matrix | ||
60 | #define VERSION_matrix "0.3.6.1" | ||
61 | #endif /* VERSION_matrix */ | ||
62 | #ifndef MIN_VERSION_matrix | ||
63 | #define MIN_VERSION_matrix(major1,major2,minor) (\ | ||
64 | (major1) < 0 || \ | ||
65 | (major1) == 0 && (major2) < 3 || \ | ||
66 | (major1) == 0 && (major2) == 3 && (minor) <= 6) | ||
67 | #endif /* MIN_VERSION_matrix */ | ||
68 | |||
69 | /* package random-1.1 */ | ||
70 | #ifndef VERSION_random | ||
71 | #define VERSION_random "1.1" | ||
72 | #endif /* VERSION_random */ | ||
73 | #ifndef MIN_VERSION_random | ||
74 | #define MIN_VERSION_random(major1,major2,minor) (\ | ||
75 | (major1) < 1 || \ | ||
76 | (major1) == 1 && (major2) < 1 || \ | ||
77 | (major1) == 1 && (major2) == 1 && (minor) <= 0) | ||
78 | #endif /* MIN_VERSION_random */ | ||
79 | |||
80 | /* tool gcc-6.3.0 */ | ||
81 | #ifndef TOOL_VERSION_gcc | ||
82 | #define TOOL_VERSION_gcc "6.3.0" | ||
83 | #endif /* TOOL_VERSION_gcc */ | ||
84 | #ifndef MIN_TOOL_VERSION_gcc | ||
85 | #define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | ||
86 | (major1) < 6 || \ | ||
87 | (major1) == 6 && (major2) < 3 || \ | ||
88 | (major1) == 6 && (major2) == 3 && (minor) <= 0) | ||
89 | #endif /* MIN_TOOL_VERSION_gcc */ | ||
90 | |||
91 | /* tool ghc-8.6.5 */ | ||
92 | #ifndef TOOL_VERSION_ghc | ||
93 | #define TOOL_VERSION_ghc "8.6.5" | ||
94 | #endif /* TOOL_VERSION_ghc */ | ||
95 | #ifndef MIN_TOOL_VERSION_ghc | ||
96 | #define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | ||
97 | (major1) < 8 || \ | ||
98 | (major1) == 8 && (major2) < 6 || \ | ||
99 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
100 | #endif /* MIN_TOOL_VERSION_ghc */ | ||
101 | |||
102 | /* tool ghc-pkg-8.6.5 */ | ||
103 | #ifndef TOOL_VERSION_ghc_pkg | ||
104 | #define TOOL_VERSION_ghc_pkg "8.6.5" | ||
105 | #endif /* TOOL_VERSION_ghc_pkg */ | ||
106 | #ifndef MIN_TOOL_VERSION_ghc_pkg | ||
107 | #define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | ||
108 | (major1) < 8 || \ | ||
109 | (major1) == 8 && (major2) < 6 || \ | ||
110 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
111 | #endif /* MIN_TOOL_VERSION_ghc_pkg */ | ||
112 | |||
113 | /* tool haddock-2.22.0 */ | ||
114 | #ifndef TOOL_VERSION_haddock | ||
115 | #define TOOL_VERSION_haddock "2.22.0" | ||
116 | #endif /* TOOL_VERSION_haddock */ | ||
117 | #ifndef MIN_TOOL_VERSION_haddock | ||
118 | #define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | ||
119 | (major1) < 2 || \ | ||
120 | (major1) == 2 && (major2) < 22 || \ | ||
121 | (major1) == 2 && (major2) == 22 && (minor) <= 0) | ||
122 | #endif /* MIN_TOOL_VERSION_haddock */ | ||
123 | |||
124 | /* tool happy-1.19.9 */ | ||
125 | #ifndef TOOL_VERSION_happy | ||
126 | #define TOOL_VERSION_happy "1.19.9" | ||
127 | #endif /* TOOL_VERSION_happy */ | ||
128 | #ifndef MIN_TOOL_VERSION_happy | ||
129 | #define MIN_TOOL_VERSION_happy(major1,major2,minor) (\ | ||
130 | (major1) < 1 || \ | ||
131 | (major1) == 1 && (major2) < 19 || \ | ||
132 | (major1) == 1 && (major2) == 19 && (minor) <= 9) | ||
133 | #endif /* MIN_TOOL_VERSION_happy */ | ||
134 | |||
135 | /* tool hpc-0.67 */ | ||
136 | #ifndef TOOL_VERSION_hpc | ||
137 | #define TOOL_VERSION_hpc "0.67" | ||
138 | #endif /* TOOL_VERSION_hpc */ | ||
139 | #ifndef MIN_TOOL_VERSION_hpc | ||
140 | #define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | ||
141 | (major1) < 0 || \ | ||
142 | (major1) == 0 && (major2) < 67 || \ | ||
143 | (major1) == 0 && (major2) == 67 && (minor) <= 0) | ||
144 | #endif /* MIN_TOOL_VERSION_hpc */ | ||
145 | |||
146 | /* tool hsc2hs-0.68.5 */ | ||
147 | #ifndef TOOL_VERSION_hsc2hs | ||
148 | #define TOOL_VERSION_hsc2hs "0.68.5" | ||
149 | #endif /* TOOL_VERSION_hsc2hs */ | ||
150 | #ifndef MIN_TOOL_VERSION_hsc2hs | ||
151 | #define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | ||
152 | (major1) < 0 || \ | ||
153 | (major1) == 0 && (major2) < 68 || \ | ||
154 | (major1) == 0 && (major2) == 68 && (minor) <= 5) | ||
155 | #endif /* MIN_TOOL_VERSION_hsc2hs */ | ||
156 | |||
157 | /* tool pkg-config-0.29 */ | ||
158 | #ifndef TOOL_VERSION_pkg_config | ||
159 | #define TOOL_VERSION_pkg_config "0.29" | ||
160 | #endif /* TOOL_VERSION_pkg_config */ | ||
161 | #ifndef MIN_TOOL_VERSION_pkg_config | ||
162 | #define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | ||
163 | (major1) < 0 || \ | ||
164 | (major1) == 0 && (major2) < 29 || \ | ||
165 | (major1) == 0 && (major2) == 29 && (minor) <= 0) | ||
166 | #endif /* MIN_TOOL_VERSION_pkg_config */ | ||
167 | |||
168 | /* tool runghc-8.6.5 */ | ||
169 | #ifndef TOOL_VERSION_runghc | ||
170 | #define TOOL_VERSION_runghc "8.6.5" | ||
171 | #endif /* TOOL_VERSION_runghc */ | ||
172 | #ifndef MIN_TOOL_VERSION_runghc | ||
173 | #define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ | ||
174 | (major1) < 8 || \ | ||
175 | (major1) == 8 && (major2) < 6 || \ | ||
176 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
177 | #endif /* MIN_TOOL_VERSION_runghc */ | ||
178 | |||
179 | /* tool strip-2.28 */ | ||
180 | #ifndef TOOL_VERSION_strip | ||
181 | #define TOOL_VERSION_strip "2.28" | ||
182 | #endif /* TOOL_VERSION_strip */ | ||
183 | #ifndef MIN_TOOL_VERSION_strip | ||
184 | #define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | ||
185 | (major1) < 2 || \ | ||
186 | (major1) == 2 && (major2) < 28 || \ | ||
187 | (major1) == 2 && (major2) == 28 && (minor) <= 0) | ||
188 | #endif /* MIN_TOOL_VERSION_strip */ | ||
189 | |||
190 | #ifndef CURRENT_COMPONENT_ID | ||
191 | #define CURRENT_COMPONENT_ID "8queens-0.1.0.0-CALlXFbfsyqGmcuvjSNrVA-8queens" | ||
192 | #endif /* CURRENT_COMPONENT_ID */ | ||
193 | #ifndef CURRENT_PACKAGE_VERSION | ||
194 | #define CURRENT_PACKAGE_VERSION "0.1.0.0" | ||
195 | #endif /* CURRENT_PACKAGE_VERSION */ | ||
196 | |||
197 | #undef CURRENT_PACKAGE_KEY | ||
198 | #undef CURRENT_COMPONENT_ID | ||
diff --git a/.stack-work/ghci/df908bbc/cabal_macros.h b/.stack-work/ghci/df908bbc/cabal_macros.h deleted file mode 100644 index 5148526..0000000 --- a/.stack-work/ghci/df908bbc/cabal_macros.h +++ /dev/null | |||
@@ -1,187 +0,0 @@ | |||
1 | /* DO NOT EDIT: This file is automatically generated by Cabal */ | ||
2 | |||
3 | /* package 8queens-0.1.0.0 */ | ||
4 | #ifndef VERSION_8queens | ||
5 | #define VERSION_8queens "0.1.0.0" | ||
6 | #endif /* VERSION_8queens */ | ||
7 | #ifndef MIN_VERSION_8queens | ||
8 | #define MIN_VERSION_8queens(major1,major2,minor) (\ | ||
9 | (major1) < 0 || \ | ||
10 | (major1) == 0 && (major2) < 1 || \ | ||
11 | (major1) == 0 && (major2) == 1 && (minor) <= 0) | ||
12 | #endif /* MIN_VERSION_8queens */ | ||
13 | |||
14 | /* package base-4.12.0.0 */ | ||
15 | #ifndef VERSION_base | ||
16 | #define VERSION_base "4.12.0.0" | ||
17 | #endif /* VERSION_base */ | ||
18 | #ifndef MIN_VERSION_base | ||
19 | #define MIN_VERSION_base(major1,major2,minor) (\ | ||
20 | (major1) < 4 || \ | ||
21 | (major1) == 4 && (major2) < 12 || \ | ||
22 | (major1) == 4 && (major2) == 12 && (minor) <= 0) | ||
23 | #endif /* MIN_VERSION_base */ | ||
24 | |||
25 | /* package lens-4.17.1 */ | ||
26 | #ifndef VERSION_lens | ||
27 | #define VERSION_lens "4.17.1" | ||
28 | #endif /* VERSION_lens */ | ||
29 | #ifndef MIN_VERSION_lens | ||
30 | #define MIN_VERSION_lens(major1,major2,minor) (\ | ||
31 | (major1) < 4 || \ | ||
32 | (major1) == 4 && (major2) < 17 || \ | ||
33 | (major1) == 4 && (major2) == 17 && (minor) <= 1) | ||
34 | #endif /* MIN_VERSION_lens */ | ||
35 | |||
36 | /* package linear-1.20.9 */ | ||
37 | #ifndef VERSION_linear | ||
38 | #define VERSION_linear "1.20.9" | ||
39 | #endif /* VERSION_linear */ | ||
40 | #ifndef MIN_VERSION_linear | ||
41 | #define MIN_VERSION_linear(major1,major2,minor) (\ | ||
42 | (major1) < 1 || \ | ||
43 | (major1) == 1 && (major2) < 20 || \ | ||
44 | (major1) == 1 && (major2) == 20 && (minor) <= 9) | ||
45 | #endif /* MIN_VERSION_linear */ | ||
46 | |||
47 | /* package matrix-0.3.6.1 */ | ||
48 | #ifndef VERSION_matrix | ||
49 | #define VERSION_matrix "0.3.6.1" | ||
50 | #endif /* VERSION_matrix */ | ||
51 | #ifndef MIN_VERSION_matrix | ||
52 | #define MIN_VERSION_matrix(major1,major2,minor) (\ | ||
53 | (major1) < 0 || \ | ||
54 | (major1) == 0 && (major2) < 3 || \ | ||
55 | (major1) == 0 && (major2) == 3 && (minor) <= 6) | ||
56 | #endif /* MIN_VERSION_matrix */ | ||
57 | |||
58 | /* package random-1.1 */ | ||
59 | #ifndef VERSION_random | ||
60 | #define VERSION_random "1.1" | ||
61 | #endif /* VERSION_random */ | ||
62 | #ifndef MIN_VERSION_random | ||
63 | #define MIN_VERSION_random(major1,major2,minor) (\ | ||
64 | (major1) < 1 || \ | ||
65 | (major1) == 1 && (major2) < 1 || \ | ||
66 | (major1) == 1 && (major2) == 1 && (minor) <= 0) | ||
67 | #endif /* MIN_VERSION_random */ | ||
68 | |||
69 | /* tool gcc-6.3.0 */ | ||
70 | #ifndef TOOL_VERSION_gcc | ||
71 | #define TOOL_VERSION_gcc "6.3.0" | ||
72 | #endif /* TOOL_VERSION_gcc */ | ||
73 | #ifndef MIN_TOOL_VERSION_gcc | ||
74 | #define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | ||
75 | (major1) < 6 || \ | ||
76 | (major1) == 6 && (major2) < 3 || \ | ||
77 | (major1) == 6 && (major2) == 3 && (minor) <= 0) | ||
78 | #endif /* MIN_TOOL_VERSION_gcc */ | ||
79 | |||
80 | /* tool ghc-8.6.5 */ | ||
81 | #ifndef TOOL_VERSION_ghc | ||
82 | #define TOOL_VERSION_ghc "8.6.5" | ||
83 | #endif /* TOOL_VERSION_ghc */ | ||
84 | #ifndef MIN_TOOL_VERSION_ghc | ||
85 | #define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | ||
86 | (major1) < 8 || \ | ||
87 | (major1) == 8 && (major2) < 6 || \ | ||
88 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
89 | #endif /* MIN_TOOL_VERSION_ghc */ | ||
90 | |||
91 | /* tool ghc-pkg-8.6.5 */ | ||
92 | #ifndef TOOL_VERSION_ghc_pkg | ||
93 | #define TOOL_VERSION_ghc_pkg "8.6.5" | ||
94 | #endif /* TOOL_VERSION_ghc_pkg */ | ||
95 | #ifndef MIN_TOOL_VERSION_ghc_pkg | ||
96 | #define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | ||
97 | (major1) < 8 || \ | ||
98 | (major1) == 8 && (major2) < 6 || \ | ||
99 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
100 | #endif /* MIN_TOOL_VERSION_ghc_pkg */ | ||
101 | |||
102 | /* tool haddock-2.22.0 */ | ||
103 | #ifndef TOOL_VERSION_haddock | ||
104 | #define TOOL_VERSION_haddock "2.22.0" | ||
105 | #endif /* TOOL_VERSION_haddock */ | ||
106 | #ifndef MIN_TOOL_VERSION_haddock | ||
107 | #define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | ||
108 | (major1) < 2 || \ | ||
109 | (major1) == 2 && (major2) < 22 || \ | ||
110 | (major1) == 2 && (major2) == 22 && (minor) <= 0) | ||
111 | #endif /* MIN_TOOL_VERSION_haddock */ | ||
112 | |||
113 | /* tool happy-1.19.9 */ | ||
114 | #ifndef TOOL_VERSION_happy | ||
115 | #define TOOL_VERSION_happy "1.19.9" | ||
116 | #endif /* TOOL_VERSION_happy */ | ||
117 | #ifndef MIN_TOOL_VERSION_happy | ||
118 | #define MIN_TOOL_VERSION_happy(major1,major2,minor) (\ | ||
119 | (major1) < 1 || \ | ||
120 | (major1) == 1 && (major2) < 19 || \ | ||
121 | (major1) == 1 && (major2) == 19 && (minor) <= 9) | ||
122 | #endif /* MIN_TOOL_VERSION_happy */ | ||
123 | |||
124 | /* tool hpc-0.67 */ | ||
125 | #ifndef TOOL_VERSION_hpc | ||
126 | #define TOOL_VERSION_hpc "0.67" | ||
127 | #endif /* TOOL_VERSION_hpc */ | ||
128 | #ifndef MIN_TOOL_VERSION_hpc | ||
129 | #define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | ||
130 | (major1) < 0 || \ | ||
131 | (major1) == 0 && (major2) < 67 || \ | ||
132 | (major1) == 0 && (major2) == 67 && (minor) <= 0) | ||
133 | #endif /* MIN_TOOL_VERSION_hpc */ | ||
134 | |||
135 | /* tool hsc2hs-0.68.5 */ | ||
136 | #ifndef TOOL_VERSION_hsc2hs | ||
137 | #define TOOL_VERSION_hsc2hs "0.68.5" | ||
138 | #endif /* TOOL_VERSION_hsc2hs */ | ||
139 | #ifndef MIN_TOOL_VERSION_hsc2hs | ||
140 | #define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | ||
141 | (major1) < 0 || \ | ||
142 | (major1) == 0 && (major2) < 68 || \ | ||
143 | (major1) == 0 && (major2) == 68 && (minor) <= 5) | ||
144 | #endif /* MIN_TOOL_VERSION_hsc2hs */ | ||
145 | |||
146 | /* tool pkg-config-0.29 */ | ||
147 | #ifndef TOOL_VERSION_pkg_config | ||
148 | #define TOOL_VERSION_pkg_config "0.29" | ||
149 | #endif /* TOOL_VERSION_pkg_config */ | ||
150 | #ifndef MIN_TOOL_VERSION_pkg_config | ||
151 | #define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | ||
152 | (major1) < 0 || \ | ||
153 | (major1) == 0 && (major2) < 29 || \ | ||
154 | (major1) == 0 && (major2) == 29 && (minor) <= 0) | ||
155 | #endif /* MIN_TOOL_VERSION_pkg_config */ | ||
156 | |||
157 | /* tool runghc-8.6.5 */ | ||
158 | #ifndef TOOL_VERSION_runghc | ||
159 | #define TOOL_VERSION_runghc "8.6.5" | ||
160 | #endif /* TOOL_VERSION_runghc */ | ||
161 | #ifndef MIN_TOOL_VERSION_runghc | ||
162 | #define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ | ||
163 | (major1) < 8 || \ | ||
164 | (major1) == 8 && (major2) < 6 || \ | ||
165 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
166 | #endif /* MIN_TOOL_VERSION_runghc */ | ||
167 | |||
168 | /* tool strip-2.28 */ | ||
169 | #ifndef TOOL_VERSION_strip | ||
170 | #define TOOL_VERSION_strip "2.28" | ||
171 | #endif /* TOOL_VERSION_strip */ | ||
172 | #ifndef MIN_TOOL_VERSION_strip | ||
173 | #define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | ||
174 | (major1) < 2 || \ | ||
175 | (major1) == 2 && (major2) < 28 || \ | ||
176 | (major1) == 2 && (major2) == 28 && (minor) <= 0) | ||
177 | #endif /* MIN_TOOL_VERSION_strip */ | ||
178 | |||
179 | #ifndef CURRENT_COMPONENT_ID | ||
180 | #define CURRENT_COMPONENT_ID "8queens-0.1.0.0-9F1bJj1BAyiFVafPDI0zqu-8queens" | ||
181 | #endif /* CURRENT_COMPONENT_ID */ | ||
182 | #ifndef CURRENT_PACKAGE_VERSION | ||
183 | #define CURRENT_PACKAGE_VERSION "0.1.0.0" | ||
184 | #endif /* CURRENT_PACKAGE_VERSION */ | ||
185 | |||
186 | #undef CURRENT_PACKAGE_KEY | ||
187 | #undef CURRENT_COMPONENT_ID | ||
diff --git a/.stack-work/ghci/ec6a65a6/cabal_macros.h b/.stack-work/ghci/ec6a65a6/cabal_macros.h deleted file mode 100644 index 0068da0..0000000 --- a/.stack-work/ghci/ec6a65a6/cabal_macros.h +++ /dev/null | |||
@@ -1,165 +0,0 @@ | |||
1 | /* DO NOT EDIT: This file is automatically generated by Cabal */ | ||
2 | |||
3 | /* package 8queens-0.1.0.0 */ | ||
4 | #ifndef VERSION_8queens | ||
5 | #define VERSION_8queens "0.1.0.0" | ||
6 | #endif /* VERSION_8queens */ | ||
7 | #ifndef MIN_VERSION_8queens | ||
8 | #define MIN_VERSION_8queens(major1,major2,minor) (\ | ||
9 | (major1) < 0 || \ | ||
10 | (major1) == 0 && (major2) < 1 || \ | ||
11 | (major1) == 0 && (major2) == 1 && (minor) <= 0) | ||
12 | #endif /* MIN_VERSION_8queens */ | ||
13 | |||
14 | /* package base-4.12.0.0 */ | ||
15 | #ifndef VERSION_base | ||
16 | #define VERSION_base "4.12.0.0" | ||
17 | #endif /* VERSION_base */ | ||
18 | #ifndef MIN_VERSION_base | ||
19 | #define MIN_VERSION_base(major1,major2,minor) (\ | ||
20 | (major1) < 4 || \ | ||
21 | (major1) == 4 && (major2) < 12 || \ | ||
22 | (major1) == 4 && (major2) == 12 && (minor) <= 0) | ||
23 | #endif /* MIN_VERSION_base */ | ||
24 | |||
25 | /* package lens-4.17.1 */ | ||
26 | #ifndef VERSION_lens | ||
27 | #define VERSION_lens "4.17.1" | ||
28 | #endif /* VERSION_lens */ | ||
29 | #ifndef MIN_VERSION_lens | ||
30 | #define MIN_VERSION_lens(major1,major2,minor) (\ | ||
31 | (major1) < 4 || \ | ||
32 | (major1) == 4 && (major2) < 17 || \ | ||
33 | (major1) == 4 && (major2) == 17 && (minor) <= 1) | ||
34 | #endif /* MIN_VERSION_lens */ | ||
35 | |||
36 | /* package linear-1.20.9 */ | ||
37 | #ifndef VERSION_linear | ||
38 | #define VERSION_linear "1.20.9" | ||
39 | #endif /* VERSION_linear */ | ||
40 | #ifndef MIN_VERSION_linear | ||
41 | #define MIN_VERSION_linear(major1,major2,minor) (\ | ||
42 | (major1) < 1 || \ | ||
43 | (major1) == 1 && (major2) < 20 || \ | ||
44 | (major1) == 1 && (major2) == 20 && (minor) <= 9) | ||
45 | #endif /* MIN_VERSION_linear */ | ||
46 | |||
47 | /* tool gcc-6.3.0 */ | ||
48 | #ifndef TOOL_VERSION_gcc | ||
49 | #define TOOL_VERSION_gcc "6.3.0" | ||
50 | #endif /* TOOL_VERSION_gcc */ | ||
51 | #ifndef MIN_TOOL_VERSION_gcc | ||
52 | #define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | ||
53 | (major1) < 6 || \ | ||
54 | (major1) == 6 && (major2) < 3 || \ | ||
55 | (major1) == 6 && (major2) == 3 && (minor) <= 0) | ||
56 | #endif /* MIN_TOOL_VERSION_gcc */ | ||
57 | |||
58 | /* tool ghc-8.6.5 */ | ||
59 | #ifndef TOOL_VERSION_ghc | ||
60 | #define TOOL_VERSION_ghc "8.6.5" | ||
61 | #endif /* TOOL_VERSION_ghc */ | ||
62 | #ifndef MIN_TOOL_VERSION_ghc | ||
63 | #define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | ||
64 | (major1) < 8 || \ | ||
65 | (major1) == 8 && (major2) < 6 || \ | ||
66 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
67 | #endif /* MIN_TOOL_VERSION_ghc */ | ||
68 | |||
69 | /* tool ghc-pkg-8.6.5 */ | ||
70 | #ifndef TOOL_VERSION_ghc_pkg | ||
71 | #define TOOL_VERSION_ghc_pkg "8.6.5" | ||
72 | #endif /* TOOL_VERSION_ghc_pkg */ | ||
73 | #ifndef MIN_TOOL_VERSION_ghc_pkg | ||
74 | #define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | ||
75 | (major1) < 8 || \ | ||
76 | (major1) == 8 && (major2) < 6 || \ | ||
77 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
78 | #endif /* MIN_TOOL_VERSION_ghc_pkg */ | ||
79 | |||
80 | /* tool haddock-2.22.0 */ | ||
81 | #ifndef TOOL_VERSION_haddock | ||
82 | #define TOOL_VERSION_haddock "2.22.0" | ||
83 | #endif /* TOOL_VERSION_haddock */ | ||
84 | #ifndef MIN_TOOL_VERSION_haddock | ||
85 | #define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | ||
86 | (major1) < 2 || \ | ||
87 | (major1) == 2 && (major2) < 22 || \ | ||
88 | (major1) == 2 && (major2) == 22 && (minor) <= 0) | ||
89 | #endif /* MIN_TOOL_VERSION_haddock */ | ||
90 | |||
91 | /* tool happy-1.19.9 */ | ||
92 | #ifndef TOOL_VERSION_happy | ||
93 | #define TOOL_VERSION_happy "1.19.9" | ||
94 | #endif /* TOOL_VERSION_happy */ | ||
95 | #ifndef MIN_TOOL_VERSION_happy | ||
96 | #define MIN_TOOL_VERSION_happy(major1,major2,minor) (\ | ||
97 | (major1) < 1 || \ | ||
98 | (major1) == 1 && (major2) < 19 || \ | ||
99 | (major1) == 1 && (major2) == 19 && (minor) <= 9) | ||
100 | #endif /* MIN_TOOL_VERSION_happy */ | ||
101 | |||
102 | /* tool hpc-0.67 */ | ||
103 | #ifndef TOOL_VERSION_hpc | ||
104 | #define TOOL_VERSION_hpc "0.67" | ||
105 | #endif /* TOOL_VERSION_hpc */ | ||
106 | #ifndef MIN_TOOL_VERSION_hpc | ||
107 | #define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | ||
108 | (major1) < 0 || \ | ||
109 | (major1) == 0 && (major2) < 67 || \ | ||
110 | (major1) == 0 && (major2) == 67 && (minor) <= 0) | ||
111 | #endif /* MIN_TOOL_VERSION_hpc */ | ||
112 | |||
113 | /* tool hsc2hs-0.68.5 */ | ||
114 | #ifndef TOOL_VERSION_hsc2hs | ||
115 | #define TOOL_VERSION_hsc2hs "0.68.5" | ||
116 | #endif /* TOOL_VERSION_hsc2hs */ | ||
117 | #ifndef MIN_TOOL_VERSION_hsc2hs | ||
118 | #define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | ||
119 | (major1) < 0 || \ | ||
120 | (major1) == 0 && (major2) < 68 || \ | ||
121 | (major1) == 0 && (major2) == 68 && (minor) <= 5) | ||
122 | #endif /* MIN_TOOL_VERSION_hsc2hs */ | ||
123 | |||
124 | /* tool pkg-config-0.29 */ | ||
125 | #ifndef TOOL_VERSION_pkg_config | ||
126 | #define TOOL_VERSION_pkg_config "0.29" | ||
127 | #endif /* TOOL_VERSION_pkg_config */ | ||
128 | #ifndef MIN_TOOL_VERSION_pkg_config | ||
129 | #define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | ||
130 | (major1) < 0 || \ | ||
131 | (major1) == 0 && (major2) < 29 || \ | ||
132 | (major1) == 0 && (major2) == 29 && (minor) <= 0) | ||
133 | #endif /* MIN_TOOL_VERSION_pkg_config */ | ||
134 | |||
135 | /* tool runghc-8.6.5 */ | ||
136 | #ifndef TOOL_VERSION_runghc | ||
137 | #define TOOL_VERSION_runghc "8.6.5" | ||
138 | #endif /* TOOL_VERSION_runghc */ | ||
139 | #ifndef MIN_TOOL_VERSION_runghc | ||
140 | #define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ | ||
141 | (major1) < 8 || \ | ||
142 | (major1) == 8 && (major2) < 6 || \ | ||
143 | (major1) == 8 && (major2) == 6 && (minor) <= 5) | ||
144 | #endif /* MIN_TOOL_VERSION_runghc */ | ||
145 | |||
146 | /* tool strip-2.28 */ | ||
147 | #ifndef TOOL_VERSION_strip | ||
148 | #define TOOL_VERSION_strip "2.28" | ||
149 | #endif /* TOOL_VERSION_strip */ | ||
150 | #ifndef MIN_TOOL_VERSION_strip | ||
151 | #define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | ||
152 | (major1) < 2 || \ | ||
153 | (major1) == 2 && (major2) < 28 || \ | ||
154 | (major1) == 2 && (major2) == 28 && (minor) <= 0) | ||
155 | #endif /* MIN_TOOL_VERSION_strip */ | ||
156 | |||
157 | #ifndef CURRENT_COMPONENT_ID | ||
158 | #define CURRENT_COMPONENT_ID "8queens-0.1.0.0-IKA4wAVh8gqIUrPDFaKU1F-8queens" | ||
159 | #endif /* CURRENT_COMPONENT_ID */ | ||
160 | #ifndef CURRENT_PACKAGE_VERSION | ||
161 | #define CURRENT_PACKAGE_VERSION "0.1.0.0" | ||
162 | #endif /* CURRENT_PACKAGE_VERSION */ | ||
163 | |||
164 | #undef CURRENT_PACKAGE_KEY | ||
165 | #undef CURRENT_COMPONENT_ID | ||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin/8queens b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin/8queens deleted file mode 100755 index b268389..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin/8queens +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin/intero b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin/intero deleted file mode 100755 index bf82725..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin/intero +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/doc/8queens-0.1.0.0/LICENSE b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/doc/8queens-0.1.0.0/LICENSE deleted file mode 100644 index 513ecb9..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/doc/8queens-0.1.0.0/LICENSE +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | Copyright Steven (c) 2019 | ||
2 | |||
3 | All rights reserved. | ||
4 | |||
5 | Redistribution and use in source and binary forms, with or without | ||
6 | modification, are permitted provided that the following conditions are met: | ||
7 | |||
8 | * Redistributions of source code must retain the above copyright | ||
9 | notice, this list of conditions and the following disclaimer. | ||
10 | |||
11 | * Redistributions in binary form must reproduce the above | ||
12 | copyright notice, this list of conditions and the following | ||
13 | disclaimer in the documentation and/or other materials provided | ||
14 | with the distribution. | ||
15 | |||
16 | * Neither the name of Steven nor the names of other | ||
17 | contributors may be used to endorse or promote products derived | ||
18 | from this software without specific prior written permission. | ||
19 | |||
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file | ||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/doc/intero-0.1.40/LICENSE b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/doc/intero-0.1.40/LICENSE deleted file mode 100644 index 3501553..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/doc/intero-0.1.40/LICENSE +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | Copyright (c) 2016, Chris Done | ||
2 | All rights reserved. | ||
3 | |||
4 | Redistribution and use in source and binary forms, with or without | ||
5 | modification, are permitted provided that the following conditions are met: | ||
6 | |||
7 | * Redistributions of source code must retain the above copyright notice, this | ||
8 | list of conditions and the following disclaimer. | ||
9 | |||
10 | * Redistributions in binary form must reproduce the above copyright notice, | ||
11 | this list of conditions and the following disclaimer in the documentation | ||
12 | and/or other materials provided with the distribution. | ||
13 | |||
14 | * Neither the name of intero nor the names of its | ||
15 | contributors may be used to endorse or promote products derived from | ||
16 | this software without specific prior written permission. | ||
17 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/8queens-0.1.0.0 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/8queens-0.1.0.0 deleted file mode 100644 index 4a70cec..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/8queens-0.1.0.0 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/Cabal-2.4.1.0-9MZFDeNrcJI10bcroa6pq8 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/Cabal-2.4.1.0-9MZFDeNrcJI10bcroa6pq8 deleted file mode 100644 index d02600b..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/Cabal-2.4.1.0-9MZFDeNrcJI10bcroa6pq8 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/StateVar-1.1.1.1-2ewTKofpCGhC2np5dyFIaR b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/StateVar-1.1.1.1-2ewTKofpCGhC2np5dyFIaR deleted file mode 100644 index b0e5bf8..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/StateVar-1.1.1.1-2ewTKofpCGhC2np5dyFIaR +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/adjunctions-4.4-5XvmwZ9ik8T4JDgak5RolE b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/adjunctions-4.4-5XvmwZ9ik8T4JDgak5RolE deleted file mode 100644 index da1f017..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/adjunctions-4.4-5XvmwZ9ik8T4JDgak5RolE +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/base-orphans-0.8.1-HeyTAcy4PKhDcGhjvJwDzq b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/base-orphans-0.8.1-HeyTAcy4PKhDcGhjvJwDzq deleted file mode 100644 index 316340d..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/base-orphans-0.8.1-HeyTAcy4PKhDcGhjvJwDzq +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/bifunctors-5.5.4-JI14q9FdaTRLWn4YdH8JmV b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/bifunctors-5.5.4-JI14q9FdaTRLWn4YdH8JmV deleted file mode 100644 index c5a9f32..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/bifunctors-5.5.4-JI14q9FdaTRLWn4YdH8JmV +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/bytes-0.15.5-3xefL3v3Ncd2XFpMRBDGRq b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/bytes-0.15.5-3xefL3v3Ncd2XFpMRBDGRq deleted file mode 100644 index 05c0c10..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/bytes-0.15.5-3xefL3v3Ncd2XFpMRBDGRq +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/cabal-doctest-1.0.6-GxlnXP6RWcB1QAJigGyNcv b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/cabal-doctest-1.0.6-GxlnXP6RWcB1QAJigGyNcv deleted file mode 100644 index c95af0e..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/cabal-doctest-1.0.6-GxlnXP6RWcB1QAJigGyNcv +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/call-stack-0.1.0-J1eWgTNOnM4IGVyeW0v2YZ b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/call-stack-0.1.0-J1eWgTNOnM4IGVyeW0v2YZ deleted file mode 100644 index 30c9cc5..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/call-stack-0.1.0-J1eWgTNOnM4IGVyeW0v2YZ +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/cereal-0.5.8.0-6rtfJLvNbgP66iuaPkuxJC b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/cereal-0.5.8.0-6rtfJLvNbgP66iuaPkuxJC deleted file mode 100644 index 0c25bf3..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/cereal-0.5.8.0-6rtfJLvNbgP66iuaPkuxJC +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/comonad-5.0.5-FO6wPvVdvoe5bevdeq1PfM b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/comonad-5.0.5-FO6wPvVdvoe5bevdeq1PfM deleted file mode 100644 index 57497a8..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/comonad-5.0.5-FO6wPvVdvoe5bevdeq1PfM +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/contravariant-1.5.1-5DqKSjbrRzZU8YLmfpGsF b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/contravariant-1.5.1-5DqKSjbrRzZU8YLmfpGsF deleted file mode 100644 index ae0c0da..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/contravariant-1.5.1-5DqKSjbrRzZU8YLmfpGsF +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/distributive-0.6-9dQuxsXiNSOFiN4BOgtPCR b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/distributive-0.6-9dQuxsXiNSOFiN4BOgtPCR deleted file mode 100644 index 6949bc5..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/distributive-0.6-9dQuxsXiNSOFiN4BOgtPCR +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/exceptions-0.10.2-965Nx9KftkgCsZ4B7Zhuyu b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/exceptions-0.10.2-965Nx9KftkgCsZ4B7Zhuyu deleted file mode 100644 index a6534dc..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/exceptions-0.10.2-965Nx9KftkgCsZ4B7Zhuyu +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/free-5.1.1-4bsEiYxPhIEFqPXXuEKbd4 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/free-5.1.1-4bsEiYxPhIEFqPXXuEKbd4 deleted file mode 100644 index b43891d..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/free-5.1.1-4bsEiYxPhIEFqPXXuEKbd4 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/ghc-paths-0.1.0.9-KaBYbRV3ryA10w04FwbrO2 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/ghc-paths-0.1.0.9-KaBYbRV3ryA10w04FwbrO2 deleted file mode 100644 index c1682fc..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/ghc-paths-0.1.0.9-KaBYbRV3ryA10w04FwbrO2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/hashable-1.2.7.0-CWI8VZuQTAYWIQTQQtqCV b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/hashable-1.2.7.0-CWI8VZuQTAYWIQTQQtqCV deleted file mode 100644 index 332987d..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/hashable-1.2.7.0-CWI8VZuQTAYWIQTQQtqCV +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/haskeline-0.7.5.0-ADzuRaH0DKHIRvvi965fg2 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/haskeline-0.7.5.0-ADzuRaH0DKHIRvvi965fg2 deleted file mode 100644 index e60f7c6..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/haskeline-0.7.5.0-ADzuRaH0DKHIRvvi965fg2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/hmatrix-0.19.0.0-2s9G4ERdQNGmPHLhVSJnl b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/hmatrix-0.19.0.0-2s9G4ERdQNGmPHLhVSJnl deleted file mode 100644 index ca529d9..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/hmatrix-0.19.0.0-2s9G4ERdQNGmPHLhVSJnl +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/integer-logarithms-1.0.3-L1fXvdNnENnEcLpMml0rI7 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/integer-logarithms-1.0.3-L1fXvdNnENnEcLpMml0rI7 deleted file mode 100644 index 7b03ace..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/integer-logarithms-1.0.3-L1fXvdNnENnEcLpMml0rI7 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/intero-0.1.40 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/intero-0.1.40 deleted file mode 100644 index 6c5c634..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/intero-0.1.40 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/invariant-0.5.3-COCiLnaO8ceLaFLP8ApMB8 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/invariant-0.5.3-COCiLnaO8ceLaFLP8ApMB8 deleted file mode 100644 index dfb60fb..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/invariant-0.5.3-COCiLnaO8ceLaFLP8ApMB8 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/kan-extensions-5.2-GOoLNNVeT9xL7L35wynQJC b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/kan-extensions-5.2-GOoLNNVeT9xL7L35wynQJC deleted file mode 100644 index 3ff152a..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/kan-extensions-5.2-GOoLNNVeT9xL7L35wynQJC +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/lens-4.17.1-HvuC79b14LY7GYVb6qSW7j b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/lens-4.17.1-HvuC79b14LY7GYVb6qSW7j deleted file mode 100644 index 1820f26..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/lens-4.17.1-HvuC79b14LY7GYVb6qSW7j +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/linear-1.20.9-8i87OQRLMk19j5jCRXHfj4 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/linear-1.20.9-8i87OQRLMk19j5jCRXHfj4 deleted file mode 100644 index 30b390c..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/linear-1.20.9-8i87OQRLMk19j5jCRXHfj4 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/loop-0.3.0-KBOFzTkURfGITuXz2VUslN b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/loop-0.3.0-KBOFzTkURfGITuXz2VUslN deleted file mode 100644 index 979bc87..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/loop-0.3.0-KBOFzTkURfGITuXz2VUslN +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/matrix-0.3.6.1-CUcUqfmsmAA7saz436AQSk b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/matrix-0.3.6.1-CUcUqfmsmAA7saz436AQSk deleted file mode 100644 index 7122f8d..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/matrix-0.3.6.1-CUcUqfmsmAA7saz436AQSk +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/network-2.8.0.1-Hmt657UE3v349uYmvUXEvW b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/network-2.8.0.1-Hmt657UE3v349uYmvUXEvW deleted file mode 100644 index 1e72286..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/network-2.8.0.1-Hmt657UE3v349uYmvUXEvW +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/parallel-3.2.2.0-EGl5SOk48TWHAD161C93aQ b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/parallel-3.2.2.0-EGl5SOk48TWHAD161C93aQ deleted file mode 100644 index 8aa0210..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/parallel-3.2.2.0-EGl5SOk48TWHAD161C93aQ +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/primitive-0.6.4.0-ILgywxtLpvnAOlEISPpP5b b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/primitive-0.6.4.0-ILgywxtLpvnAOlEISPpP5b deleted file mode 100644 index 42208e7..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/primitive-0.6.4.0-ILgywxtLpvnAOlEISPpP5b +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/profunctors-5.3-IpGd709zs3V8sI6m3XgDzt b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/profunctors-5.3-IpGd709zs3V8sI6m3XgDzt deleted file mode 100644 index 5fc1728..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/profunctors-5.3-IpGd709zs3V8sI6m3XgDzt +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/random-1.1-3ypV4EIycgb35PKjTYYr5q b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/random-1.1-3ypV4EIycgb35PKjTYYr5q deleted file mode 100644 index 3c5fbdc..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/random-1.1-3ypV4EIycgb35PKjTYYr5q +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/reflection-2.1.4-E9VXTbXoqHZ5rulgGPZOrF b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/reflection-2.1.4-E9VXTbXoqHZ5rulgGPZOrF deleted file mode 100644 index 4251fe0..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/reflection-2.1.4-E9VXTbXoqHZ5rulgGPZOrF +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/scientific-0.3.6.2-Jh87LYpjAZH3EhMJkXeu1S b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/scientific-0.3.6.2-Jh87LYpjAZH3EhMJkXeu1S deleted file mode 100644 index 38eaf58..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/scientific-0.3.6.2-Jh87LYpjAZH3EhMJkXeu1S +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/semigroupoids-5.3.2-Ka80fCBNMcd1Be50r62zFC b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/semigroupoids-5.3.2-Ka80fCBNMcd1Be50r62zFC deleted file mode 100644 index 0ecc45e..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/semigroupoids-5.3.2-Ka80fCBNMcd1Be50r62zFC +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/semigroups-0.18.5-6T2lH5F6zyQIdwR3JYKMO3 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/semigroups-0.18.5-6T2lH5F6zyQIdwR3JYKMO3 deleted file mode 100644 index 21dacf0..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/semigroups-0.18.5-6T2lH5F6zyQIdwR3JYKMO3 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/split-0.2.3.3-6n1iQ0JLFvkeXvJXsAqQc b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/split-0.2.3.3-6n1iQ0JLFvkeXvJXsAqQc deleted file mode 100644 index e54c671..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/split-0.2.3.3-6n1iQ0JLFvkeXvJXsAqQc +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/storable-complex-0.2.3.0-IqTssBZ2G90J9kRbLSMmF1 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/storable-complex-0.2.3.0-IqTssBZ2G90J9kRbLSMmF1 deleted file mode 100644 index 99987dc..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/storable-complex-0.2.3.0-IqTssBZ2G90J9kRbLSMmF1 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/syb-0.7-KRW1LCxdMiCJrmhxCvzo37 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/syb-0.7-KRW1LCxdMiCJrmhxCvzo37 deleted file mode 100644 index b815e2e..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/syb-0.7-KRW1LCxdMiCJrmhxCvzo37 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/tagged-0.8.6-EiJ2F18RuD68LSMkg0Ly4r b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/tagged-0.8.6-EiJ2F18RuD68LSMkg0Ly4r deleted file mode 100644 index 64e8f79..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/tagged-0.8.6-EiJ2F18RuD68LSMkg0Ly4r +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/th-abstraction-0.2.11.0-DAhuCgi08HTBWsDjm9nrOq b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/th-abstraction-0.2.11.0-DAhuCgi08HTBWsDjm9nrOq deleted file mode 100644 index 1a0a51c..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/th-abstraction-0.2.11.0-DAhuCgi08HTBWsDjm9nrOq +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/transformers-base-0.4.5.2-FZmnqdpGRpbAstl7i9dBCk b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/transformers-base-0.4.5.2-FZmnqdpGRpbAstl7i9dBCk deleted file mode 100644 index 0b9b0f3..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/transformers-base-0.4.5.2-FZmnqdpGRpbAstl7i9dBCk +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/transformers-compat-0.6.5-JTHfwAgpAU6AqyWxijPF3Z b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/transformers-compat-0.6.5-JTHfwAgpAU6AqyWxijPF3Z deleted file mode 100644 index 9177e32..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/transformers-compat-0.6.5-JTHfwAgpAU6AqyWxijPF3Z +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/unordered-containers-0.2.9.0-BRWkoSTuML1cQdpep6Oin b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/unordered-containers-0.2.9.0-BRWkoSTuML1cQdpep6Oin deleted file mode 100644 index 7953ccb..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/unordered-containers-0.2.9.0-BRWkoSTuML1cQdpep6Oin +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/vector-0.12.0.3-2LEYu9M2i7lERDtz76XG3n b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/vector-0.12.0.3-2LEYu9M2i7lERDtz76XG3n deleted file mode 100644 index 6b4bd67..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/vector-0.12.0.3-2LEYu9M2i7lERDtz76XG3n +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/void-0.7.3-5xXWQQsTYbKFlr3KfNvyL8 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/void-0.7.3-5xXWQQsTYbKFlr3KfNvyL8 deleted file mode 100644 index 1b77fa9..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/flag-cache/void-0.7.3-5xXWQQsTYbKFlr3KfNvyL8 +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/installed-packages/8queens-0.1.0.0 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/installed-packages/8queens-0.1.0.0 deleted file mode 100644 index 795f563..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/installed-packages/8queens-0.1.0.0 +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | Installed \ No newline at end of file | ||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/installed-packages/intero-0.1.40 b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/installed-packages/intero-0.1.40 deleted file mode 100644 index 795f563..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/installed-packages/intero-0.1.40 +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | Installed \ No newline at end of file | ||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/pkgdb/package.cache b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/pkgdb/package.cache deleted file mode 100644 index b3cae5c..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/pkgdb/package.cache +++ /dev/null | |||
Binary files differ | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/pkgdb/package.cache.lock b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/pkgdb/package.cache.lock deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/pkgdb/package.cache.lock +++ /dev/null | |||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/intero-0.1.40/elisp/haskell-simple-indent.el b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/intero-0.1.40/elisp/haskell-simple-indent.el deleted file mode 100644 index 1d43d23..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/intero-0.1.40/elisp/haskell-simple-indent.el +++ /dev/null | |||
@@ -1,273 +0,0 @@ | |||
1 | ;;; haskell-simple-indent.el --- Simple indentation module for Haskell Mode -*- lexical-binding: t -*- | ||
2 | |||
3 | ;; Copyright (C) 1998 Heribert Schuetz, Graeme E Moss | ||
4 | |||
5 | ;; Author: Heribert Schuetz <Heribert.Schuetz@informatik.uni-muenchen.de> | ||
6 | ;; Graeme E Moss <gem@cs.york.ac.uk> | ||
7 | ;; Keywords: indentation files Haskell | ||
8 | |||
9 | ;; This file is not part of GNU Emacs. | ||
10 | |||
11 | ;; This file is free software; you can redistribute it and/or modify | ||
12 | ;; it under the terms of the GNU General Public License as published by | ||
13 | ;; the Free Software Foundation; either version 3, or (at your option) | ||
14 | ;; any later version. | ||
15 | |||
16 | ;; This file is distributed in the hope that it will be useful, | ||
17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | ;; GNU General Public License for more details. | ||
20 | |||
21 | ;; You should have received a copy of the GNU General Public License | ||
22 | ;; along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
23 | |||
24 | ;;; Commentary: | ||
25 | |||
26 | ;; Purpose: | ||
27 | ;; | ||
28 | ;; To support simple indentation of Haskell scripts. | ||
29 | ;; | ||
30 | ;; | ||
31 | ;; Installation: | ||
32 | ;; | ||
33 | ;; To bind TAB to the indentation command for all Haskell buffers, add | ||
34 | ;; this to .emacs: | ||
35 | ;; | ||
36 | ;; (add-hook 'haskell-mode-hook 'turn-on-haskell-simple-indent) | ||
37 | ;; | ||
38 | ;; Otherwise, call `turn-on-haskell-simple-indent'. | ||
39 | ;; | ||
40 | ;; | ||
41 | ;; Customisation: | ||
42 | ;; | ||
43 | ;; None supported. | ||
44 | ;; | ||
45 | ;; | ||
46 | ;; History: | ||
47 | ;; | ||
48 | ;; If you have any problems or suggestions, after consulting the list | ||
49 | ;; below, email gem@cs.york.ac.uk quoting the version of you are | ||
50 | ;; using, the version of Emacs you are using, and a small example of | ||
51 | ;; the problem or suggestion. | ||
52 | ;; | ||
53 | ;; Version 1.0: | ||
54 | ;; Brought over from Haskell mode v1.1. | ||
55 | ;; | ||
56 | ;; Present Limitations/Future Work (contributions are most welcome!): | ||
57 | ;; | ||
58 | ;; (None so far.) | ||
59 | |||
60 | ;;; Code: | ||
61 | |||
62 | ;; All functions/variables start with | ||
63 | ;; `(turn-(on/off)-)haskell-simple-indent'. | ||
64 | |||
65 | (require 'haskell-mode) | ||
66 | |||
67 | ;;;###autoload | ||
68 | (defgroup haskell-simple-indent nil | ||
69 | "Simple Haskell indentation." | ||
70 | :link '(custom-manual "(haskell-mode)Indentation") | ||
71 | :group 'haskell | ||
72 | :prefix "haskell-simple-indent-") | ||
73 | |||
74 | ;; Version. | ||
75 | (defconst haskell-simple-indent-version "1.2" | ||
76 | "`haskell-simple-indent' version number.") | ||
77 | (defun haskell-simple-indent-version () | ||
78 | "Echo the current version of `haskell-simple-indent' in the minibuffer." | ||
79 | (interactive) | ||
80 | (message "Using haskell-simple-indent version %s" | ||
81 | haskell-simple-indent-version)) | ||
82 | |||
83 | ;; Partly stolen from `indent-relative' in indent.el: | ||
84 | (defun haskell-simple-indent () | ||
85 | "Space out to under next visible indent point. | ||
86 | |||
87 | Indent points are positions of non-whitespace following | ||
88 | whitespace in lines preceeding point. Example: | ||
89 | |||
90 | func arg cx = when (isTrue) $ do | ||
91 | print 42 | ||
92 | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ | ||
93 | |||
94 | A position is visible if it is to the left of the first | ||
95 | non-whitespace (indentation) of every nonblank line between the | ||
96 | position and the current line. If there is no visible indent | ||
97 | point beyond the current column, position given by | ||
98 | `indent-next-tab-stop' is used instead." | ||
99 | (interactive) | ||
100 | (let* ((start-column (or (save-excursion | ||
101 | (back-to-indentation) | ||
102 | (if (not (eolp)) | ||
103 | (current-column))) | ||
104 | (current-column))) | ||
105 | (invisible-from nil) ; `nil' means infinity here | ||
106 | (found) | ||
107 | (indent)) | ||
108 | (save-excursion | ||
109 | ;; Loop stops if there no more lines above this one or when has | ||
110 | ;; found a line starting at first column. | ||
111 | (while (and (not found) | ||
112 | (or (not invisible-from) | ||
113 | (not (zerop invisible-from))) | ||
114 | (zerop (forward-line -1))) | ||
115 | ;; Ignore empty lines. | ||
116 | (if (not (looking-at "[ \t]*\n")) | ||
117 | (let ((this-indentation (current-indentation))) | ||
118 | ;; Is this line so indented that it cannot have | ||
119 | ;; influence on indentation points? | ||
120 | (if (or (not invisible-from) | ||
121 | (< this-indentation invisible-from)) | ||
122 | (if (> this-indentation start-column) | ||
123 | (setq invisible-from this-indentation) | ||
124 | (let ((end (line-end-position))) | ||
125 | (move-to-column start-column) | ||
126 | ;; Is start-column inside a tab on this line? | ||
127 | (if (> (current-column) start-column) | ||
128 | (backward-char 1)) | ||
129 | ;; Skip to the end of non-whitespace. | ||
130 | (skip-chars-forward "^ \t" end) | ||
131 | ;; Skip over whitespace. | ||
132 | (skip-chars-forward " \t" end) | ||
133 | ;; Indentation point found if not at the end of | ||
134 | ;; line and if not covered by any line below | ||
135 | ;; this one. In that case use invisible-from. | ||
136 | (setq indent (if (or (= (point) end) | ||
137 | (and invisible-from | ||
138 | (> (current-column) invisible-from))) | ||
139 | invisible-from | ||
140 | (current-column))) | ||
141 | ;; Signal that solution is found. | ||
142 | (setq found t)))))))) | ||
143 | |||
144 | |||
145 | (let ((opoint (point-marker))) | ||
146 | ;; Indent to the calculated indent or last know invisible-from | ||
147 | ;; or use tab-to-tab-stop. Try hard to keep cursor in the same | ||
148 | ;; place or move it to the indentation if it was before it. And | ||
149 | ;; keep content of the line intact. | ||
150 | (setq indent (or indent | ||
151 | invisible-from | ||
152 | (if (fboundp 'indent-next-tab-stop) | ||
153 | (indent-next-tab-stop start-column)) | ||
154 | (let ((tabs tab-stop-list)) | ||
155 | (while (and tabs (>= start-column (car tabs))) | ||
156 | (setq tabs (cdr tabs))) | ||
157 | (if tabs (car tabs))) | ||
158 | (* (/ (+ start-column tab-width) tab-width) tab-width))) | ||
159 | (indent-line-to indent) | ||
160 | (if (> opoint (point)) | ||
161 | (goto-char opoint)) | ||
162 | (set-marker opoint nil)))) | ||
163 | |||
164 | (defun haskell-simple-indent-backtab () | ||
165 | "Indent backwards. Dual to `haskell-simple-indent'." | ||
166 | (interactive) | ||
167 | (let ((saved-column (or (save-excursion | ||
168 | (back-to-indentation) | ||
169 | (if (not (eolp)) | ||
170 | (current-column))) | ||
171 | (current-column))) | ||
172 | (i 0) | ||
173 | (x 0)) | ||
174 | |||
175 | (save-excursion | ||
176 | (back-to-indentation) | ||
177 | (delete-region (line-beginning-position) (point))) | ||
178 | (while (< (or (save-excursion | ||
179 | (back-to-indentation) | ||
180 | (if (not (eolp)) | ||
181 | (current-column))) | ||
182 | (current-column)) saved-column) | ||
183 | (haskell-simple-indent) | ||
184 | (setq i (+ i 1))) | ||
185 | |||
186 | (save-excursion | ||
187 | (back-to-indentation) | ||
188 | (delete-region (line-beginning-position) (point))) | ||
189 | (while (< x (- i 1)) | ||
190 | (haskell-simple-indent) | ||
191 | (setq x (+ x 1))))) | ||
192 | |||
193 | (defun haskell-simple-indent-newline-same-col () | ||
194 | "Make a newline and go to the same column as the current line." | ||
195 | (interactive) | ||
196 | (let ((start-end | ||
197 | (save-excursion | ||
198 | (let* ((start (line-beginning-position)) | ||
199 | (end (progn (goto-char start) | ||
200 | (search-forward-regexp | ||
201 | "[^ ]" (line-end-position) t 1)))) | ||
202 | (when end (cons start (1- end))))))) | ||
203 | (if start-end | ||
204 | (progn (newline) | ||
205 | (insert (buffer-substring-no-properties | ||
206 | (car start-end) (cdr start-end)))) | ||
207 | (newline)))) | ||
208 | |||
209 | (defun haskell-simple-indent-newline-indent () | ||
210 | "Make a newline on the current column and indent on step." | ||
211 | (interactive) | ||
212 | (haskell-simple-indent-newline-same-col) | ||
213 | (insert (make-string haskell-indent-spaces ? ))) | ||
214 | |||
215 | (defun haskell-simple-indent-comment-indent-function () | ||
216 | "Haskell version of `comment-indent-function'." | ||
217 | ;; This is required when filladapt is turned off. Without it, when | ||
218 | ;; filladapt is not used, comments which start in column zero | ||
219 | ;; cascade one character to the right | ||
220 | (save-excursion | ||
221 | (beginning-of-line) | ||
222 | (let ((eol (line-end-position))) | ||
223 | (and comment-start-skip | ||
224 | (re-search-forward comment-start-skip eol t) | ||
225 | (setq eol (match-beginning 0))) | ||
226 | (goto-char eol) | ||
227 | (skip-chars-backward " \t") | ||
228 | (max comment-column (+ (current-column) (if (bolp) 0 1)))))) | ||
229 | |||
230 | ;;;###autoload | ||
231 | (define-minor-mode haskell-simple-indent-mode | ||
232 | "Simple Haskell indentation mode that uses simple heuristic. | ||
233 | In this minor mode, `indent-for-tab-command' (bound to <tab> by | ||
234 | default) will move the cursor to the next indent point in the | ||
235 | previous nonblank line, whereas `haskell-simple-indent-backtab' | ||
236 | \ (bound to <backtab> by default) will move the cursor the | ||
237 | previous indent point. An indent point is a non-whitespace | ||
238 | character following whitespace. | ||
239 | |||
240 | Runs `haskell-simple-indent-hook' on activation." | ||
241 | :lighter " Ind" | ||
242 | :group 'haskell-simple-indent | ||
243 | :keymap '(([backtab] . haskell-simple-indent-backtab)) | ||
244 | (kill-local-variable 'comment-indent-function) | ||
245 | (kill-local-variable 'indent-line-function) | ||
246 | (when haskell-simple-indent-mode | ||
247 | (when (and (bound-and-true-p haskell-indentation-mode) | ||
248 | (fboundp 'haskell-indentation-mode)) | ||
249 | (haskell-indentation-mode 0)) | ||
250 | (set (make-local-variable 'comment-indent-function) #'haskell-simple-indent-comment-indent-function) | ||
251 | (set (make-local-variable 'indent-line-function) 'haskell-simple-indent) | ||
252 | (run-hooks 'haskell-simple-indent-hook))) | ||
253 | |||
254 | ;; The main functions. | ||
255 | ;;;###autoload | ||
256 | (defun turn-on-haskell-simple-indent () | ||
257 | "Turn on function `haskell-simple-indent-mode'." | ||
258 | (interactive) | ||
259 | (haskell-simple-indent-mode)) | ||
260 | (make-obsolete 'turn-on-haskell-simple-indent | ||
261 | 'haskell-simple-indent-mode | ||
262 | "2015-07-23") | ||
263 | |||
264 | (defun turn-off-haskell-simple-indent () | ||
265 | "Turn off function `haskell-simple-indent-mode'." | ||
266 | (interactive) | ||
267 | (haskell-simple-indent-mode 0)) | ||
268 | |||
269 | ;; Provide ourselves: | ||
270 | |||
271 | (provide 'haskell-simple-indent) | ||
272 | |||
273 | ;;; haskell-simple-indent.el ends here | ||
diff --git a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/intero-0.1.40/elisp/intero.el b/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/intero-0.1.40/elisp/intero.el deleted file mode 100644 index a1dd48e..0000000 --- a/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/share/x86_64-linux-ghc-8.6.5/intero-0.1.40/elisp/intero.el +++ /dev/null | |||
@@ -1,3676 +0,0 @@ | |||
1 | ;;; intero.el --- Complete development mode for Haskell | ||
2 | |||
3 | ;; Copyright (c) 2016 Chris Done | ||
4 | ;; Copyright (c) 2016 Steve Purcell | ||
5 | ;; Copyright (C) 2016 Артур Файзрахманов | ||
6 | ;; Copyright (c) 2015 Athur Fayzrakhmanov | ||
7 | ;; Copyright (C) 2015 Gracjan Polak | ||
8 | ;; Copyright (c) 2013 Herbert Valerio Riedel | ||
9 | ;; Copyright (c) 2007 Stefan Monnier | ||
10 | |||
11 | ;; Author: Chris Done <chrisdone@fpcomplete.com> | ||
12 | ;; Maintainer: Chris Done <chrisdone@fpcomplete.com> | ||
13 | ;; URL: https://github.com/commercialhaskell/intero | ||
14 | ;; Created: 3rd June 2016 | ||
15 | ;; Version: 0.1.13 | ||
16 | ;; Keywords: haskell, tools | ||
17 | ;; Package-Requires: ((flycheck "0.25") (company "0.8") (emacs "24.4") (haskell-mode "13.0")) | ||
18 | |||
19 | ;; This file is free software; you can redistribute it and/or modify | ||
20 | ;; it under the terms of the GNU General Public License as published by | ||
21 | ;; the Free Software Foundation; either version 3, or (at your option) | ||
22 | ;; any later version. | ||
23 | |||
24 | ;; This file is distributed in the hope that it will be useful, | ||
25 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
26 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
27 | ;; GNU General Public License for more details. | ||
28 | |||
29 | ;; You should have received a copy of the GNU General Public License | ||
30 | ;; along with GNU Emacs; see the file COPYING. If not, write to | ||
31 | ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
32 | ;; Boston, MA 02110-1301, USA. | ||
33 | |||
34 | ;;; Commentary: | ||
35 | ;; | ||
36 | ;; Mode that enables: | ||
37 | ;; | ||
38 | ;; * Flycheck type checking ✓ | ||
39 | ;; * Company mode completion ✓ | ||
40 | ;; * Go to definition ✓ | ||
41 | ;; * Type of selection ✓ | ||
42 | ;; * Info ✓ | ||
43 | ;; * REPL ✓ | ||
44 | ;; * Apply suggestions (extensions, imports, etc.) ✓ | ||
45 | ;; * Find uses | ||
46 | ;; * Completion of stack targets ✓ | ||
47 | ;; * List all types in all expressions | ||
48 | ;; * Import management | ||
49 | ;; * Dependency management | ||
50 | |||
51 | ;;; Code: | ||
52 | |||
53 | (require 'flycheck) | ||
54 | (require 'json) | ||
55 | (require 'warnings) | ||
56 | (require 'cl-lib) | ||
57 | (require 'company) | ||
58 | (require 'comint) | ||
59 | (require 'widget) | ||
60 | (require 'eldoc) | ||
61 | (eval-when-compile | ||
62 | (require 'wid-edit)) | ||
63 | (require 'tramp) | ||
64 | |||
65 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
66 | ;; Configuration | ||
67 | |||
68 | (defgroup intero nil | ||
69 | "Complete development mode for Haskell" | ||
70 | :group 'haskell) | ||
71 | |||
72 | (defcustom intero-package-version | ||
73 | (cl-case system-type | ||
74 | ;; Until <https://github.com/haskell/network/issues/313> is fixed: | ||
75 | (windows-nt "0.1.39") | ||
76 | (cygwin "0.1.39") | ||
77 | (t "0.1.39")) | ||
78 | "Package version to auto-install. | ||
79 | |||
80 | This version does not necessarily have to be the latest version | ||
81 | of intero published on Hackage. Sometimes there are changes to | ||
82 | Intero which have no use for the Emacs mode. It is only bumped | ||
83 | when the Emacs mode actually requires newer features from the | ||
84 | intero executable, otherwise we force our users to upgrade | ||
85 | pointlessly." | ||
86 | :group 'intero | ||
87 | :type 'string) | ||
88 | |||
89 | (defcustom intero-repl-no-load | ||
90 | t | ||
91 | "Pass --no-load when starting the repl. | ||
92 | This causes it to skip loading the files from the selected target." | ||
93 | :group 'intero | ||
94 | :type 'boolean) | ||
95 | |||
96 | (defcustom intero-repl-no-build | ||
97 | t | ||
98 | "Pass --no-build when starting the repl. | ||
99 | This causes it to skip building the target." | ||
100 | :group 'intero | ||
101 | :type 'boolean) | ||
102 | |||
103 | (defcustom intero-debug nil | ||
104 | "Show debug output." | ||
105 | :group 'intero | ||
106 | :type 'boolean) | ||
107 | |||
108 | (defcustom intero-whitelist | ||
109 | nil | ||
110 | "Projects to whitelist. | ||
111 | |||
112 | It should be a list of directories. | ||
113 | |||
114 | To use this, use the following mode hook: | ||
115 | (add-hook 'haskell-mode-hook 'intero-mode-whitelist) | ||
116 | or use `intero-global-mode' and add \"/\" to `intero-blacklist'." | ||
117 | :group 'intero | ||
118 | :type 'string) | ||
119 | |||
120 | (defcustom intero-blacklist | ||
121 | nil | ||
122 | "Projects to blacklist. | ||
123 | |||
124 | It should be a list of directories. | ||
125 | |||
126 | To use this, use the following mode hook: | ||
127 | (add-hook 'haskell-mode-hook 'intero-mode-blacklist) | ||
128 | or use `intero-global-mode'." | ||
129 | :group 'intero | ||
130 | :type 'string) | ||
131 | |||
132 | (defcustom intero-stack-executable | ||
133 | "stack" | ||
134 | "Name or path to the Stack executable to use." | ||
135 | :group 'intero | ||
136 | :type 'string) | ||
137 | |||
138 | (defcustom intero-pop-to-repl | ||
139 | t | ||
140 | "When non-nil, pop to REPL when code is sent to it." | ||
141 | :group 'intero | ||
142 | :type 'boolean) | ||
143 | |||
144 | (defcustom intero-extra-ghc-options nil | ||
145 | "Extra GHC options to pass to intero executable. | ||
146 | |||
147 | For example, this variable can be used to run intero with extra | ||
148 | warnings and perform more checks via flycheck error reporting." | ||
149 | :group 'intero | ||
150 | :type '(repeat string)) | ||
151 | |||
152 | (defcustom intero-extra-ghci-options nil | ||
153 | "Extra options to pass to GHCi when running `intero-repl'. | ||
154 | |||
155 | For example, this variable can be used to enable some ghci extensions | ||
156 | by default." | ||
157 | :group 'intero | ||
158 | :type '(repeat string)) | ||
159 | |||
160 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
161 | ;; Modes | ||
162 | |||
163 | (defvar intero-mode-map (make-sparse-keymap) | ||
164 | "Intero minor mode's map.") | ||
165 | |||
166 | (defvar-local intero-lighter " Intero" | ||
167 | "Lighter for the intero minor mode.") | ||
168 | |||
169 | ;;;###autoload | ||
170 | (define-minor-mode intero-mode | ||
171 | "Minor mode for Intero. | ||
172 | |||
173 | \\{intero-mode-map}" | ||
174 | :lighter intero-lighter | ||
175 | :keymap intero-mode-map | ||
176 | (when (bound-and-true-p interactive-haskell-mode) | ||
177 | (when (fboundp 'interactive-haskell-mode) | ||
178 | (message "Disabling interactive-haskell-mode ...") | ||
179 | (interactive-haskell-mode -1))) | ||
180 | (if intero-mode | ||
181 | (progn | ||
182 | (intero-flycheck-enable) | ||
183 | (add-hook 'completion-at-point-functions 'intero-completion-at-point nil t) | ||
184 | (add-to-list (make-local-variable 'company-backends) 'intero-company) | ||
185 | (company-mode) | ||
186 | (setq-local company-minimum-prefix-length 1) | ||
187 | (unless eldoc-documentation-function | ||
188 | (setq-local eldoc-documentation-function #'ignore)) | ||
189 | (add-function :before-until (local 'eldoc-documentation-function) #'intero-eldoc) | ||
190 | ) | ||
191 | (progn | ||
192 | (remove-function (local 'eldoc-documentation-function) #'intero-eldoc) | ||
193 | (message "Intero mode disabled.")))) | ||
194 | |||
195 | ;;;###autoload | ||
196 | (defun intero-mode-whitelist () | ||
197 | "Run intero-mode when the current project is in `intero-whitelist'." | ||
198 | (interactive) | ||
199 | (when (intero-directories-contain-file (buffer-file-name) intero-whitelist) | ||
200 | (intero-mode))) | ||
201 | |||
202 | ;;;###autoload | ||
203 | (defun intero-mode-blacklist () | ||
204 | "Run intero-mode unless the current project is in `intero-blacklist'." | ||
205 | (interactive) | ||
206 | (unless (intero-directories-contain-file (buffer-file-name) intero-blacklist) | ||
207 | (intero-mode))) | ||
208 | |||
209 | (dolist (f '(intero-mode-whitelist intero-mode-blacklist)) | ||
210 | (make-obsolete | ||
211 | f | ||
212 | "use `intero-global-mode', which honours `intero-whitelist' and `intero-blacklist'." | ||
213 | "2017-05-13")) | ||
214 | |||
215 | |||
216 | (define-key intero-mode-map (kbd "C-c C-t") 'intero-type-at) | ||
217 | (define-key intero-mode-map (kbd "M-?") 'intero-uses-at) | ||
218 | (define-key intero-mode-map (kbd "C-c C-i") 'intero-info) | ||
219 | (define-key intero-mode-map (kbd "M-.") 'intero-goto-definition) | ||
220 | (define-key intero-mode-map (kbd "C-c C-l") 'intero-repl-load) | ||
221 | (define-key intero-mode-map (kbd "C-c C-c") 'intero-repl-eval-region) | ||
222 | (define-key intero-mode-map (kbd "C-c C-z") 'intero-repl) | ||
223 | (define-key intero-mode-map (kbd "C-c C-r") 'intero-apply-suggestions) | ||
224 | (define-key intero-mode-map (kbd "C-c C-e") 'intero-expand-splice-at-point) | ||
225 | |||
226 | (defun intero-directories-contain-file (file dirs) | ||
227 | "Return non-nil if FILE is contained in at least one of DIRS." | ||
228 | (and (not (null file)) | ||
229 | (cl-some (lambda (directory) | ||
230 | (file-in-directory-p file directory)) | ||
231 | dirs))) | ||
232 | |||
233 | (defun intero-mode-maybe () | ||
234 | "Enable `intero-mode' in all Haskell mode buffers. | ||
235 | The buffer's filename (or working directory) is checked against | ||
236 | `intero-whitelist' and `intero-blacklist'. If both the whitelist | ||
237 | and blacklist match, then the whitelist entry wins, and | ||
238 | `intero-mode' is enabled." | ||
239 | (when (intero-mode-should-start-p) | ||
240 | (intero-mode 1))) | ||
241 | |||
242 | (defun intero-mode-should-start-p () | ||
243 | "Predicate whether intero should start given user config. | ||
244 | The buffer's filename (or working directory) is checked against | ||
245 | `intero-whitelist' and `intero-blacklist'. If both the whitelist | ||
246 | and blacklist match, then the whitelist entry wins, and | ||
247 | `intero-mode' is enabled." | ||
248 | (and (derived-mode-p 'haskell-mode) | ||
249 | (let* ((file (or (buffer-file-name) default-directory)) | ||
250 | (blacklisted (intero-directories-contain-file | ||
251 | file intero-blacklist)) | ||
252 | (whitelisted (intero-directories-contain-file | ||
253 | file intero-whitelist))) | ||
254 | (or whitelisted (not blacklisted))))) | ||
255 | |||
256 | ;;;###autoload | ||
257 | (define-globalized-minor-mode intero-global-mode | ||
258 | intero-mode intero-mode-maybe | ||
259 | :require 'intero) | ||
260 | |||
261 | (define-obsolete-function-alias 'global-intero-mode 'intero-global-mode) | ||
262 | |||
263 | |||
264 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
265 | ;; Global variables/state | ||
266 | |||
267 | (defvar intero-temp-file-buffer-mapping | ||
268 | (make-hash-table) | ||
269 | "A mapping from file names to buffers.") | ||
270 | |||
271 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
272 | ;; Buffer-local variables/state | ||
273 | |||
274 | (defvar-local intero-callbacks (list) | ||
275 | "List of callbacks waiting for output. | ||
276 | LIST is a FIFO.") | ||
277 | |||
278 | (defvar-local intero-async-network-cmd nil | ||
279 | "Command to send to the async network process when we connect.") | ||
280 | |||
281 | (defvar-local intero-async-network-connected nil | ||
282 | "Did we successfully connect to the intero service?") | ||
283 | |||
284 | (defvar-local intero-async-network-state nil | ||
285 | "State to pass to the callback once we get a response.") | ||
286 | |||
287 | (defvar-local intero-async-network-worker nil | ||
288 | "The worker we're associated with.") | ||
289 | |||
290 | (defvar-local intero-async-network-callback nil | ||
291 | "Callback to call when the connection is closed.") | ||
292 | |||
293 | (defvar-local intero-arguments (list) | ||
294 | "Arguments used to call the stack process.") | ||
295 | |||
296 | (defvar-local intero-targets (list) | ||
297 | "Targets used for the stack process.") | ||
298 | |||
299 | (defvar-local intero-repl-last-loaded nil | ||
300 | "Last loaded module in the REPL.") | ||
301 | |||
302 | (defvar-local intero-repl-send-after-load nil | ||
303 | "Send a command after every load.") | ||
304 | |||
305 | (defvar-local intero-start-time nil | ||
306 | "Start time of the stack process.") | ||
307 | |||
308 | (defvar-local intero-source-buffer (list) | ||
309 | "Buffer from which Intero was first requested to start.") | ||
310 | |||
311 | (defvar-local intero-project-root nil | ||
312 | "The project root of the current buffer.") | ||
313 | |||
314 | (defvar-local intero-package-name nil | ||
315 | "The package name associated with the current buffer.") | ||
316 | |||
317 | (defvar-local intero-deleting nil | ||
318 | "The process of the buffer is being deleted.") | ||
319 | |||
320 | (defvar-local intero-give-up nil | ||
321 | "When non-nil, give up trying to start the backend. | ||
322 | A true value indicates that the backend could not start, or could | ||
323 | not be installed. The user will have to manually run | ||
324 | `intero-restart' or `intero-targets' to destroy the buffer and | ||
325 | create a fresh one without this variable enabled.") | ||
326 | |||
327 | (defvar-local intero-try-with-build nil | ||
328 | "Try starting intero without --no-build. | ||
329 | This is slower, but will build required dependencies.") | ||
330 | |||
331 | (defvar-local intero-starting nil | ||
332 | "When non-nil, indicates that the intero process starting up.") | ||
333 | |||
334 | (defvar-local intero-service-port nil | ||
335 | "Port that the intero process is listening on for asynchronous commands.") | ||
336 | |||
337 | (defvar-local intero-hoogle-port nil | ||
338 | "Port that hoogle server is listening on.") | ||
339 | |||
340 | (defvar-local intero-suggestions nil | ||
341 | "Auto actions for the buffer.") | ||
342 | |||
343 | (defvar-local intero-extensions nil | ||
344 | "Extensions supported by the compiler.") | ||
345 | |||
346 | (defvar-local intero-ghc-version nil | ||
347 | "GHC version used by the project.") | ||
348 | |||
349 | (defvar-local intero-buffer-host nil | ||
350 | "The hostname of the box hosting the intero process for the current buffer.") | ||
351 | |||
352 | (defvar-local intero-stack-yaml nil | ||
353 | "The yaml file that intero should tell stack to use. When nil, | ||
354 | intero relies on stack's default, usually the 'stack.yaml' in | ||
355 | the project root.") | ||
356 | |||
357 | (defun intero-inherit-local-variables (buffer) | ||
358 | "Make the current buffer inherit values of certain local variables from BUFFER." | ||
359 | (let ((variables '(intero-stack-executable | ||
360 | intero-repl-no-build | ||
361 | intero-repl-no-load | ||
362 | intero-stack-yaml | ||
363 | ;; TODO: shouldn’t more of the above be here? | ||
364 | ))) | ||
365 | (cl-loop for v in variables do | ||
366 | (set (make-local-variable v) (buffer-local-value v buffer))))) | ||
367 | |||
368 | (defmacro intero-with-temp-buffer (&rest body) | ||
369 | "Run BODY in `with-temp-buffer', but inherit certain local variables from the current buffer first." | ||
370 | (declare (indent 0) (debug t)) | ||
371 | `(let ((initial-buffer (current-buffer))) | ||
372 | (with-temp-buffer | ||
373 | (intero-inherit-local-variables initial-buffer) | ||
374 | ,@body))) | ||
375 | |||
376 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
377 | ;; Interactive commands | ||
378 | |||
379 | (defun intero-add-package (package) | ||
380 | "Add a dependency on PACKAGE to the currently-running project backend." | ||
381 | (interactive "sPackage: ") | ||
382 | (intero-blocking-call 'backend (concat ":set -package " package)) | ||
383 | (flycheck-buffer)) | ||
384 | |||
385 | (defun intero-toggle-debug () | ||
386 | "Toggle debugging mode on/off." | ||
387 | (interactive) | ||
388 | (setq intero-debug (not intero-debug)) | ||
389 | (message "Intero debugging is: %s" (if intero-debug "ON" "OFF"))) | ||
390 | |||
391 | (defun intero-list-buffers () | ||
392 | "List hidden process buffers created by intero. | ||
393 | |||
394 | You can use this to kill them or look inside." | ||
395 | (interactive) | ||
396 | (let ((buffers (cl-remove-if-not | ||
397 | (lambda (buffer) | ||
398 | (string-match-p " intero:" (buffer-name buffer))) | ||
399 | (buffer-list)))) | ||
400 | (if buffers | ||
401 | (display-buffer | ||
402 | (list-buffers-noselect | ||
403 | nil | ||
404 | buffers)) | ||
405 | (error "There are no Intero process buffers")))) | ||
406 | |||
407 | (defun intero-cd () | ||
408 | "Change directory in the backend process." | ||
409 | (interactive) | ||
410 | (intero-async-call | ||
411 | 'backend | ||
412 | (concat ":cd " | ||
413 | (read-directory-name "Change Intero directory: ")))) | ||
414 | |||
415 | (defun intero-fontify-expression (expression) | ||
416 | "Return a haskell-fontified version of EXPRESSION." | ||
417 | (intero-with-temp-buffer | ||
418 | (when (fboundp 'haskell-mode) | ||
419 | (let ((flycheck-checkers nil) | ||
420 | (haskell-mode-hook nil)) | ||
421 | (haskell-mode))) | ||
422 | (insert expression) | ||
423 | (if (fboundp 'font-lock-ensure) | ||
424 | (font-lock-ensure) | ||
425 | (font-lock-fontify-buffer)) | ||
426 | (buffer-string))) | ||
427 | |||
428 | (defun intero-uses-at () | ||
429 | "Highlight where the identifier at point is used." | ||
430 | (interactive) | ||
431 | (let* ((thing (intero-thing-at-point)) | ||
432 | (uses (split-string (apply #'intero-get-uses-at thing) | ||
433 | "\n" | ||
434 | t))) | ||
435 | (unless (null uses) | ||
436 | (let ((highlighted nil)) | ||
437 | (cl-loop | ||
438 | for use in uses | ||
439 | when (string-match | ||
440 | "\\(.*?\\):(\\([0-9]+\\),\\([0-9]+\\))-(\\([0-9]+\\),\\([0-9]+\\))$" | ||
441 | use) | ||
442 | do (let* ((returned-file (match-string 1 use)) | ||
443 | (loaded-file (intero-extend-path-by-buffer-host returned-file)) | ||
444 | (sline (string-to-number (match-string 2 use))) | ||
445 | (scol (string-to-number (match-string 3 use))) | ||
446 | (eline (string-to-number (match-string 4 use))) | ||
447 | (ecol (string-to-number (match-string 5 use))) | ||
448 | (start (save-excursion (goto-char (point-min)) | ||
449 | (forward-line (1- sline)) | ||
450 | (forward-char (1- scol)) | ||
451 | (point)))) | ||
452 | (when (intero-temp-file-p loaded-file) | ||
453 | (unless highlighted | ||
454 | (intero-highlight-uses-mode)) | ||
455 | (setq highlighted t) | ||
456 | (intero-highlight-uses-mode-highlight | ||
457 | start | ||
458 | (save-excursion (goto-char (point-min)) | ||
459 | (forward-line (1- eline)) | ||
460 | (forward-char (1- ecol)) | ||
461 | (point)) | ||
462 | (= start (car thing)))))))))) | ||
463 | |||
464 | (defun intero-type-at (insert) | ||
465 | "Get the type of the thing or selection at point. | ||
466 | |||
467 | With prefix argument INSERT, inserts the type above the current | ||
468 | line as a type signature." | ||
469 | (interactive "P") | ||
470 | (let* ((thing (intero-thing-at-point)) | ||
471 | (origin-buffer (current-buffer)) | ||
472 | (origin (buffer-name)) | ||
473 | (package (intero-package-name)) | ||
474 | (ty (apply #'intero-get-type-at thing)) | ||
475 | (string (buffer-substring (nth 0 thing) (nth 1 thing)))) | ||
476 | (if insert | ||
477 | (save-excursion | ||
478 | (goto-char (line-beginning-position)) | ||
479 | (insert (intero-fontify-expression ty) "\n")) | ||
480 | (with-current-buffer (intero-help-buffer) | ||
481 | (let ((buffer-read-only nil) | ||
482 | (help-string | ||
483 | (concat | ||
484 | (intero-fontify-expression string) | ||
485 | " in `" | ||
486 | (propertize origin 'origin-buffer origin-buffer) | ||
487 | "'" | ||
488 | " (" package ")" | ||
489 | "\n\n" | ||
490 | (intero-fontify-expression ty)))) | ||
491 | (erase-buffer) | ||
492 | (intero-help-push-history origin-buffer help-string) | ||
493 | (intero-help-pagination) | ||
494 | (insert help-string) | ||
495 | (goto-char (point-min)))) | ||
496 | (message | ||
497 | "%s" (intero-fontify-expression ty))))) | ||
498 | |||
499 | (defun intero-info (ident) | ||
500 | "Get the info of the thing with IDENT at point." | ||
501 | (interactive (list (intero-ident-at-point))) | ||
502 | (let ((origin-buffer (current-buffer)) | ||
503 | (package (intero-package-name)) | ||
504 | (info (intero-get-info-of ident)) | ||
505 | (origin (buffer-name))) | ||
506 | (with-current-buffer (pop-to-buffer (intero-help-buffer)) | ||
507 | (let ((buffer-read-only nil) | ||
508 | (help-string | ||
509 | (concat | ||
510 | (intero-fontify-expression ident) | ||
511 | " in `" | ||
512 | (propertize origin 'origin-buffer origin-buffer) | ||
513 | "'" | ||
514 | " (" package ")" | ||
515 | "\n\n" | ||
516 | (intero-fontify-expression info)))) | ||
517 | (erase-buffer) | ||
518 | (intero-help-push-history origin-buffer help-string) | ||
519 | (intero-help-pagination) | ||
520 | (insert help-string) | ||
521 | (goto-char (point-min)))))) | ||
522 | |||
523 | (defun intero-goto-definition () | ||
524 | "Jump to the definition of the thing at point. | ||
525 | Returns nil when unable to find definition." | ||
526 | (interactive) | ||
527 | (let ((result (apply #'intero-get-loc-at (intero-thing-at-point)))) | ||
528 | |||
529 | (if (not (string-match "\\(.*?\\):(\\([0-9]+\\),\\([0-9]+\\))-(\\([0-9]+\\),\\([0-9]+\\))$" | ||
530 | result)) | ||
531 | (message "%s" result) | ||
532 | (if (fboundp 'xref-push-marker-stack) ;; Emacs 25 | ||
533 | (xref-push-marker-stack) | ||
534 | (with-no-warnings | ||
535 | (ring-insert find-tag-marker-ring (point-marker)))) | ||
536 | (let* ((returned-file (match-string 1 result)) | ||
537 | (line (string-to-number (match-string 2 result))) | ||
538 | (col (string-to-number (match-string 3 result))) | ||
539 | (loaded-file (intero-extend-path-by-buffer-host returned-file))) | ||
540 | (if (intero-temp-file-p loaded-file) | ||
541 | (let ((original-buffer (intero-temp-file-origin-buffer loaded-file))) | ||
542 | (if original-buffer | ||
543 | (switch-to-buffer original-buffer) | ||
544 | (error "Attempted to load temp file. Try restarting Intero. | ||
545 | If the problem persists, please report this as a bug!"))) | ||
546 | (find-file | ||
547 | (expand-file-name | ||
548 | returned-file | ||
549 | (intero-extend-path-by-buffer-host (intero-project-root))))) | ||
550 | (pop-mark) | ||
551 | (goto-char (point-min)) | ||
552 | (forward-line (1- line)) | ||
553 | (forward-char (1- col)) | ||
554 | t)))) | ||
555 | |||
556 | (defmacro intero-with-dump-splices (exp) | ||
557 | "Run EXP but with dump-splices enabled in the intero backend process." | ||
558 | `(when (intero-blocking-call 'backend ":set -ddump-splices") | ||
559 | (let ((result ,exp)) | ||
560 | (progn | ||
561 | nil ; Disable dump-splices here in future | ||
562 | result)))) | ||
563 | |||
564 | (defun intero-expand-splice-at-point () | ||
565 | "Show the expansion of the template haskell splice at point." | ||
566 | (interactive) | ||
567 | (unless (intero-gave-up 'backend) | ||
568 | (intero-with-dump-splices | ||
569 | (let* ((output (intero-blocking-call | ||
570 | 'backend | ||
571 | (concat ":load " (intero-path-for-ghci (intero-temp-file-name))))) | ||
572 | (msgs (intero-parse-errors-warnings-splices nil (current-buffer) output)) | ||
573 | (line (line-number-at-pos)) | ||
574 | (column (if (save-excursion | ||
575 | (forward-char 1) | ||
576 | (looking-back "$(" 1)) | ||
577 | (+ 2 (current-column)) | ||
578 | (if (looking-at-p "$(") | ||
579 | (+ 3 (current-column)) | ||
580 | (1+ (current-column))))) | ||
581 | (expansion-msg | ||
582 | (cl-loop for msg in msgs | ||
583 | when (and (eq (flycheck-error-level msg) 'splice) | ||
584 | (= (flycheck-error-line msg) line) | ||
585 | (<= (flycheck-error-column msg) column)) | ||
586 | return (flycheck-error-message msg))) | ||
587 | (expansion | ||
588 | (when expansion-msg | ||
589 | (string-trim | ||
590 | (replace-regexp-in-string "^Splicing expression" "" expansion-msg))))) | ||
591 | (when expansion | ||
592 | (message "%s" (intero-fontify-expression expansion))))))) | ||
593 | |||
594 | (defun intero-restart () | ||
595 | "Simply restart the process with the same configuration as before." | ||
596 | (interactive) | ||
597 | (when (intero-buffer-p 'backend) | ||
598 | (let ((targets (buffer-local-value 'intero-targets | ||
599 | (intero-buffer 'backend))) | ||
600 | (stack-yaml (buffer-local-value 'intero-stack-yaml | ||
601 | (intero-buffer 'backend)))) | ||
602 | (intero-destroy 'backend) | ||
603 | (intero-get-worker-create 'backend targets (current-buffer) stack-yaml) | ||
604 | (intero-repl-restart)))) | ||
605 | |||
606 | (defun intero-read-targets () | ||
607 | "Read a list of stack targets." | ||
608 | (let ((old-targets | ||
609 | (buffer-local-value 'intero-targets (intero-buffer 'backend))) | ||
610 | (available-targets (intero-get-targets))) | ||
611 | (if available-targets | ||
612 | (intero-multiswitch | ||
613 | "Set the targets to use for stack ghci:" | ||
614 | (mapcar (lambda (target) | ||
615 | (list :key target | ||
616 | :title target | ||
617 | :default (member target old-targets))) | ||
618 | available-targets)) | ||
619 | (split-string (read-from-minibuffer "Targets: " nil nil nil nil old-targets) | ||
620 | " " | ||
621 | t)))) | ||
622 | |||
623 | (defun intero-targets (targets save-dir-local) | ||
624 | "Set the TARGETS to use for stack ghci. | ||
625 | When SAVE-DIR-LOCAL is non-nil, save TARGETS as the | ||
626 | directory-local value for `intero-targets'." | ||
627 | (interactive (list (intero-read-targets) | ||
628 | (y-or-n-p "Save selected target(s) in directory local variables for future sessions? "))) | ||
629 | (intero-destroy) | ||
630 | (intero-get-worker-create 'backend targets (current-buffer)) | ||
631 | (intero-repl-restart) | ||
632 | (when save-dir-local | ||
633 | (save-window-excursion | ||
634 | (let ((default-directory (intero-project-root))) | ||
635 | (add-dir-local-variable 'haskell-mode 'intero-targets targets) | ||
636 | (save-buffer))))) | ||
637 | |||
638 | (defun intero-stack-yaml (file save-dir-local) | ||
639 | "Change the yaml FILE that intero should tell stack to use. | ||
640 | Intero will be restarted with the new configuration. When | ||
641 | SAVE-DIR-LOCAL is non-nil, save FILE as the directory-local value | ||
642 | for `intero-stack-yaml'." | ||
643 | (interactive (list (read-file-name | ||
644 | "Select YAML config: " | ||
645 | (file-name-as-directory (intero-project-root))) | ||
646 | (y-or-n-p "Save selected stack yaml config in directory local variable for future sessions? "))) | ||
647 | (let ((stack-yaml (expand-file-name file))) | ||
648 | (setq intero-stack-yaml stack-yaml) | ||
649 | (with-current-buffer (intero-buffer 'backend) | ||
650 | (setq intero-stack-yaml stack-yaml)) | ||
651 | (intero-restart) | ||
652 | (intero-repl-restart) | ||
653 | (when save-dir-local | ||
654 | (save-window-excursion | ||
655 | (let ((default-directory (intero-project-root))) | ||
656 | (add-dir-local-variable 'haskell-mode 'intero-stack-yaml stack-yaml) | ||
657 | (save-buffer)))))) | ||
658 | |||
659 | (defun intero-destroy (&optional worker) | ||
660 | "Stop WORKER and kill its associated process buffer. | ||
661 | If not provided, WORKER defaults to the current worker process." | ||
662 | (interactive) | ||
663 | (if worker | ||
664 | (intero-delete-worker worker) | ||
665 | (intero-delete-worker 'backend))) | ||
666 | |||
667 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
668 | ;; DevelMain integration | ||
669 | |||
670 | (defun intero-devel-reload () | ||
671 | "Reload the module `DevelMain' and then run `DevelMain.update'. | ||
672 | |||
673 | This is for doing live update of the code of servers or GUI | ||
674 | applications. Put your development version of the program in | ||
675 | `DevelMain', and define `update' to auto-start the program on a | ||
676 | new thread, and use the `foreign-store' package to access the | ||
677 | running context across :load/:reloads in Intero." | ||
678 | (interactive) | ||
679 | (unwind-protect | ||
680 | (with-current-buffer | ||
681 | (or (get-buffer "DevelMain.hs") | ||
682 | (if (y-or-n-p | ||
683 | "You need to open a buffer named DevelMain.hs. Find now? ") | ||
684 | (ido-find-file) | ||
685 | (error "No DevelMain.hs buffer"))) | ||
686 | (message "Reloading ...") | ||
687 | (intero-async-call | ||
688 | 'backend | ||
689 | ":load DevelMain" | ||
690 | (current-buffer) | ||
691 | (lambda (buffer reply) | ||
692 | (if (string-match-p "^O[Kk], modules loaded" reply) | ||
693 | (intero-async-call | ||
694 | 'backend | ||
695 | "DevelMain.update" | ||
696 | buffer | ||
697 | (lambda (_buffer reply) | ||
698 | (message "DevelMain updated. Output was:\n%s" | ||
699 | reply))) | ||
700 | (progn | ||
701 | (message "DevelMain FAILED. Switch to DevelMain.hs and compile that.") | ||
702 | (switch-to-buffer buffer) | ||
703 | (flycheck-buffer) | ||
704 | (flycheck-list-errors)))))))) | ||
705 | |||
706 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
707 | ;; Flycheck integration | ||
708 | |||
709 | (defun intero-flycheck-enable () | ||
710 | "Enable intero's flycheck support in this buffer." | ||
711 | (flycheck-select-checker 'intero) | ||
712 | (setq intero-check-last-mod-time nil | ||
713 | intero-check-last-results nil) | ||
714 | (flycheck-mode)) | ||
715 | |||
716 | (defun intero-check (checker cont) | ||
717 | "Run a check with CHECKER and pass the status onto CONT." | ||
718 | (if (intero-gave-up 'backend) | ||
719 | (run-with-timer 0 | ||
720 | nil | ||
721 | cont | ||
722 | 'interrupted) | ||
723 | (let* ((file-buffer (current-buffer)) | ||
724 | (staging-file (intero-path-for-ghci (intero-staging-file-name))) | ||
725 | (temp-file (intero-path-for-ghci (intero-temp-file-name)))) | ||
726 | ;; We queue up to :move the staging file to the target temp | ||
727 | ;; file, which also updates its modified time. | ||
728 | (intero-async-call | ||
729 | 'backend | ||
730 | (format ":move %s %s" staging-file temp-file)) | ||
731 | ;; We load up the target temp file, which has only been updated | ||
732 | ;; by the copy above. | ||
733 | (intero-async-call | ||
734 | 'backend | ||
735 | (concat ":load " temp-file) | ||
736 | (list :cont cont | ||
737 | :file-buffer file-buffer | ||
738 | :checker checker) | ||
739 | (lambda (state string) | ||
740 | (with-current-buffer (plist-get state :file-buffer) | ||
741 | (let* ((compile-ok (string-match "O[Kk], modules loaded: \\(.*\\)\\.$" string)) | ||
742 | (modules (match-string 1 string)) | ||
743 | (msgs (intero-parse-errors-warnings-splices | ||
744 | (plist-get state :checker) | ||
745 | (current-buffer) | ||
746 | string))) | ||
747 | (intero-collect-compiler-messages msgs) | ||
748 | (let ((results (cl-remove-if (lambda (msg) | ||
749 | (eq 'splice (flycheck-error-level msg))) | ||
750 | msgs))) | ||
751 | (setq intero-check-last-results results) | ||
752 | (funcall (plist-get state :cont) 'finished results)) | ||
753 | (when compile-ok | ||
754 | (intero-async-call 'backend | ||
755 | (concat ":module + " | ||
756 | (replace-regexp-in-string "," "" modules)) | ||
757 | nil | ||
758 | (lambda (_st _)))))))) | ||
759 | ;; We sleep for at least one second to allow a buffer period | ||
760 | ;; between module updates. GHCi will consider a module Foo to be | ||
761 | ;; unchanged even if its filename has changed or timestmap has | ||
762 | ;; changed, if the timestamp is less than 1 second. | ||
763 | (intero-async-call | ||
764 | 'backend | ||
765 | ":sleep 1")))) | ||
766 | |||
767 | (flycheck-define-generic-checker 'intero | ||
768 | "A syntax and type checker for Haskell using an Intero worker | ||
769 | process." | ||
770 | :start 'intero-check | ||
771 | :modes '(haskell-mode literate-haskell-mode) | ||
772 | :predicate (lambda () intero-mode)) | ||
773 | |||
774 | (add-to-list 'flycheck-checkers 'intero) | ||
775 | |||
776 | (defun intero-parse-errors-warnings-splices (checker buffer string) | ||
777 | "Parse flycheck errors and warnings. | ||
778 | CHECKER and BUFFER are added to each item parsed from STRING." | ||
779 | (intero-with-temp-buffer | ||
780 | (insert string) | ||
781 | (goto-char (point-min)) | ||
782 | (let ((messages (list)) | ||
783 | (temp-file (intero-temp-file-name buffer)) | ||
784 | (found-error-as-warning nil)) | ||
785 | (while (search-forward-regexp | ||
786 | (concat "[\r\n]\\([A-Z]?:?[^ \r\n:][^:\n\r]+\\):\\([0-9()-:]+\\):" | ||
787 | "[ \n\r]+\\([[:unibyte:][:nonascii:]]+?\\)\n[^ ]") | ||
788 | nil t 1) | ||
789 | (let* ((local-file (intero-canonicalize-path (match-string 1))) | ||
790 | (file (intero-extend-path-by-buffer-host local-file buffer)) | ||
791 | (location-raw (match-string 2)) | ||
792 | (msg (replace-regexp-in-string | ||
793 | "[\n\r ]*|$" | ||
794 | "" | ||
795 | (match-string 3))) ;; Replace gross bullet points. | ||
796 | (type (cond ((string-match "^Warning:" msg) | ||
797 | (setq msg (replace-regexp-in-string "^Warning: *" "" msg)) | ||
798 | (if (string-match-p | ||
799 | (rx bol | ||
800 | "[" | ||
801 | (or "-Wdeferred-type-errors" | ||
802 | "-Wdeferred-out-of-scope-variables" | ||
803 | "-Wtyped-holes") | ||
804 | "]") | ||
805 | msg) | ||
806 | (progn (setq found-error-as-warning t) | ||
807 | 'error) | ||
808 | 'warning)) | ||
809 | ((string-match-p "^Splicing " msg) 'splice) | ||
810 | (t 'error))) | ||
811 | (location (intero-parse-error | ||
812 | (concat local-file ":" location-raw ": x"))) | ||
813 | (line (plist-get location :line)) | ||
814 | (column (plist-get location :col))) | ||
815 | (setq messages | ||
816 | (cons (flycheck-error-new-at | ||
817 | line column type | ||
818 | msg | ||
819 | :checker checker | ||
820 | :buffer buffer | ||
821 | :filename (if (intero-paths-for-same-file temp-file file) | ||
822 | (intero-buffer-file-name buffer) | ||
823 | file)) | ||
824 | messages))) | ||
825 | (forward-line -1)) | ||
826 | (delete-dups | ||
827 | (if found-error-as-warning | ||
828 | (cl-remove-if (lambda (msg) (eq 'warning (flycheck-error-level msg))) messages) | ||
829 | messages))))) | ||
830 | |||
831 | (defconst intero-error-regexp-alist | ||
832 | `((,(concat | ||
833 | "^ *\\(?1:[^\t\r\n]+?\\):" | ||
834 | "\\(?:" | ||
835 | "\\(?2:[0-9]+\\):\\(?4:[0-9]+\\)\\(?:-\\(?5:[0-9]+\\)\\)?" ;; "121:1" & "12:3-5" | ||
836 | "\\|" | ||
837 | "(\\(?2:[0-9]+\\),\\(?4:[0-9]+\\))-(\\(?3:[0-9]+\\),\\(?5:[0-9]+\\))" ;; "(289,5)-(291,36)" | ||
838 | "\\)" | ||
839 | ":\\(?6: Warning:\\)?") | ||
840 | 1 (2 . 3) (4 . 5) (6 . nil)) ;; error/warning locus | ||
841 | |||
842 | ;; multiple declarations | ||
843 | ("^ \\(?:Declared at:\\| \\) \\(?1:[^ \t\r\n]+\\):\\(?2:[0-9]+\\):\\(?4:[0-9]+\\)$" | ||
844 | 1 2 4 0) ;; info locus | ||
845 | |||
846 | ;; this is the weakest pattern as it's subject to line wrapping et al. | ||
847 | (" at \\(?1:[^ \t\r\n]+\\):\\(?2:[0-9]+\\):\\(?4:[0-9]+\\)\\(?:-\\(?5:[0-9]+\\)\\)?[)]?$" | ||
848 | 1 2 (4 . 5) 0)) ;; info locus | ||
849 | "Regexps used for matching GHC compile messages.") | ||
850 | |||
851 | (defun intero-parse-error (string) | ||
852 | "Parse the line number from the error in STRING." | ||
853 | (save-match-data | ||
854 | (when (string-match (mapconcat #'car intero-error-regexp-alist "\\|") | ||
855 | string) | ||
856 | (let ((string3 (match-string 3 string)) | ||
857 | (string5 (match-string 5 string))) | ||
858 | (list :file (match-string 1 string) | ||
859 | :line (string-to-number (match-string 2 string)) | ||
860 | :col (string-to-number (match-string 4 string)) | ||
861 | :line2 (when string3 | ||
862 | (string-to-number string3)) | ||
863 | :col2 (when string5 | ||
864 | (string-to-number string5))))))) | ||
865 | |||
866 | (defun intero-call-in-buffer (buffer func &rest args) | ||
867 | "In BUFFER, call FUNC with ARGS." | ||
868 | (with-current-buffer buffer | ||
869 | (apply func args))) | ||
870 | |||
871 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
872 | ;; Traditional completion-at-point function | ||
873 | |||
874 | (defun intero-completion-at-point () | ||
875 | "A (blocking) function suitable for use in `completion-at-point-functions'." | ||
876 | (let ((prefix-info (intero-completions-grab-prefix))) | ||
877 | (when prefix-info | ||
878 | (cl-destructuring-bind | ||
879 | (beg end prefix _type) prefix-info | ||
880 | (let ((completions | ||
881 | (intero-completion-response-to-list | ||
882 | (intero-blocking-call | ||
883 | 'backend | ||
884 | (format ":complete repl %S" prefix))))) | ||
885 | (when completions | ||
886 | (list beg end completions))))))) | ||
887 | |||
888 | (defun intero-repl-completion-at-point () | ||
889 | "A (blocking) function suitable for use in `completion-at-point-functions'. | ||
890 | Should only be used in the repl" | ||
891 | (let* ((beg (save-excursion (intero-repl-beginning-of-line) (point))) | ||
892 | (end (point)) | ||
893 | (str (buffer-substring-no-properties beg end)) | ||
894 | (repl-buffer (current-buffer)) | ||
895 | (proc (get-buffer-process (current-buffer)))) | ||
896 | (with-temp-buffer | ||
897 | (comint-redirect-send-command-to-process | ||
898 | (format ":complete repl %S" str) ;; command | ||
899 | (current-buffer) ;; output buffer | ||
900 | proc ;; target process | ||
901 | nil ;; echo | ||
902 | t) ;; no-display | ||
903 | (while (not (with-current-buffer repl-buffer | ||
904 | comint-redirect-completed)) | ||
905 | (sleep-for 0.01)) | ||
906 | (let* ((completions (intero-completion-response-to-list (buffer-string))) | ||
907 | (first-line (car completions))) | ||
908 | (when (string-match "[^ ]* [^ ]* " first-line) ;; "2 2 :load src/" | ||
909 | (setq first-line (replace-match "" nil nil first-line)) | ||
910 | (list (+ beg (length first-line)) end (cdr completions))))))) | ||
911 | |||
912 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
913 | ;; Company integration (auto-completion) | ||
914 | |||
915 | (defconst intero-pragmas | ||
916 | '("CONLIKE" "SCC" "DEPRECATED" "INCLUDE" "INCOHERENT" "INLINABLE" "INLINE" | ||
917 | "LANGUAGE" "LINE" "MINIMAL" "NOINLINE" "NOUNPACK" "OPTIONS" "OPTIONS_GHC" | ||
918 | "OVERLAPPABLE" "OVERLAPPING" "OVERLAPS" "RULES" "SOURCE" "SPECIALIZE" | ||
919 | "UNPACK" "WARNING") | ||
920 | "Pragmas that GHC supports.") | ||
921 | |||
922 | (defun intero-company (command &optional arg &rest ignored) | ||
923 | "Company source for intero, with the standard COMMAND and ARG args. | ||
924 | Other arguments are IGNORED." | ||
925 | (interactive (list 'interactive)) | ||
926 | (cl-case command | ||
927 | (interactive (company-begin-backend 'intero-company)) | ||
928 | (prefix | ||
929 | (unless (intero-gave-up 'backend) | ||
930 | (or (let ((hole (intero-grab-hole))) | ||
931 | (when hole | ||
932 | (save-excursion | ||
933 | (goto-char (cdr hole)) | ||
934 | (buffer-substring (car hole) (cdr hole))))) | ||
935 | (let ((prefix-info (intero-completions-grab-prefix))) | ||
936 | (when prefix-info | ||
937 | (cl-destructuring-bind | ||
938 | (beg end prefix _type) prefix-info | ||
939 | prefix)))))) | ||
940 | (candidates | ||
941 | (unless (intero-gave-up 'backend) | ||
942 | (let ((beg-end (intero-grab-hole))) | ||
943 | (if beg-end | ||
944 | (cons :async | ||
945 | (-partial 'intero-async-fill-at | ||
946 | (current-buffer) | ||
947 | (car beg-end))) | ||
948 | (let ((prefix-info (intero-completions-grab-prefix))) | ||
949 | (when prefix-info | ||
950 | (cons :async | ||
951 | (-partial 'intero-company-callback | ||
952 | (current-buffer) | ||
953 | prefix-info)))))))))) | ||
954 | |||
955 | (define-obsolete-function-alias 'company-intero 'intero-company) | ||
956 | |||
957 | (defun intero-company-callback (source-buffer prefix-info cont) | ||
958 | "Generate completions for SOURCE-BUFFER based on PREFIX-INFO and call CONT on the results." | ||
959 | (cl-destructuring-bind | ||
960 | (beg end prefix type) prefix-info | ||
961 | (or (and (bound-and-true-p intero-mode) | ||
962 | (cl-case type | ||
963 | (haskell-completions-module-name-prefix | ||
964 | (intero-get-repl-completions source-buffer (concat "import " prefix) cont) | ||
965 | t) | ||
966 | (haskell-completions-identifier-prefix | ||
967 | (intero-get-completions source-buffer beg end cont) | ||
968 | t) | ||
969 | (haskell-completions-language-extension-prefix | ||
970 | (intero-get-repl-completions | ||
971 | source-buffer | ||
972 | (concat ":set -X" prefix) | ||
973 | (-partial (lambda (cont results) | ||
974 | (funcall cont | ||
975 | (mapcar (lambda (x) | ||
976 | (replace-regexp-in-string "^-X" "" x)) | ||
977 | results))) | ||
978 | cont)) | ||
979 | t) | ||
980 | (haskell-completions-pragma-name-prefix | ||
981 | (funcall cont | ||
982 | (cl-remove-if-not | ||
983 | (lambda (candidate) | ||
984 | (string-prefix-p prefix candidate)) | ||
985 | intero-pragmas)) | ||
986 | t))) | ||
987 | (intero-get-repl-completions source-buffer prefix cont)))) | ||
988 | |||
989 | (defun intero-completions-grab-prefix (&optional minlen) | ||
990 | "Grab prefix at point for possible completion. | ||
991 | If specified, MINLEN is the shortest completion which will be | ||
992 | considered." | ||
993 | (when (intero-completions-can-grab-prefix) | ||
994 | (let ((prefix (cond | ||
995 | ((intero-completions-grab-pragma-prefix)) | ||
996 | ((intero-completions-grab-identifier-prefix))))) | ||
997 | (cond ((and minlen prefix) | ||
998 | (when (>= (length (nth 2 prefix)) minlen) | ||
999 | prefix)) | ||
1000 | (prefix prefix))))) | ||
1001 | |||
1002 | (defun intero-completions-can-grab-prefix () | ||
1003 | "Check if the case is appropriate for grabbing completion prefix." | ||
1004 | (when (not (region-active-p)) | ||
1005 | (when (looking-at-p (rx (| space line-end punct))) | ||
1006 | (when (not (bobp)) | ||
1007 | (save-excursion | ||
1008 | (backward-char) | ||
1009 | (not (looking-at-p (rx (| space line-end))))))))) | ||
1010 | |||
1011 | (defun intero-completions-grab-identifier-prefix () | ||
1012 | "Grab identifier prefix." | ||
1013 | (let ((pos-at-point (intero-ident-pos-at-point)) | ||
1014 | (p (point))) | ||
1015 | (when pos-at-point | ||
1016 | (let* ((start (car pos-at-point)) | ||
1017 | (end (cdr pos-at-point)) | ||
1018 | (type 'haskell-completions-identifier-prefix) | ||
1019 | (case-fold-search nil) | ||
1020 | value) | ||
1021 | (when (<= p end) | ||
1022 | (setq end p) | ||
1023 | (setq value (buffer-substring-no-properties start end)) | ||
1024 | (when (string-match-p (rx bos upper) value) | ||
1025 | (save-excursion | ||
1026 | (goto-char (line-beginning-position)) | ||
1027 | (when (re-search-forward | ||
1028 | (rx "import" | ||
1029 | (? (1+ space) "qualified") | ||
1030 | (1+ space) | ||
1031 | upper | ||
1032 | (1+ (| alnum "."))) | ||
1033 | p ;; bound | ||
1034 | t) ;; no-error | ||
1035 | (if (equal p (point)) | ||
1036 | (setq type 'haskell-completions-module-name-prefix) | ||
1037 | (when (re-search-forward | ||
1038 | (rx (| " as " "(")) | ||
1039 | start | ||
1040 | t) | ||
1041 | (setq type 'haskell-completions-identifier-prefix)))))) | ||
1042 | (when (nth 8 (syntax-ppss)) | ||
1043 | (setq type 'haskell-completions-general-prefix)) | ||
1044 | (when value (list start end value type))))))) | ||
1045 | |||
1046 | (defun intero-completions-grab-pragma-prefix () | ||
1047 | "Grab completion prefix for pragma completions. | ||
1048 | Returns a list of form '(prefix-start-position | ||
1049 | prefix-end-position prefix-value prefix-type) for pramga names | ||
1050 | such as WARNING, DEPRECATED, LANGUAGE etc. Also returns | ||
1051 | completion prefixes for options in case OPTIONS_GHC pragma, or | ||
1052 | language extensions in case of LANGUAGE pragma. Obsolete OPTIONS | ||
1053 | pragma is supported also." | ||
1054 | (when (nth 4 (syntax-ppss)) | ||
1055 | ;; We're inside comment | ||
1056 | (let ((p (point)) | ||
1057 | (comment-start (nth 8 (syntax-ppss))) | ||
1058 | (case-fold-search nil) | ||
1059 | prefix-start | ||
1060 | prefix-end | ||
1061 | prefix-type | ||
1062 | prefix-value) | ||
1063 | (save-excursion | ||
1064 | (goto-char comment-start) | ||
1065 | (when (looking-at (rx "{-#" (1+ (| space "\n")))) | ||
1066 | (let ((pragma-start (match-end 0))) | ||
1067 | (when (> p pragma-start) | ||
1068 | ;; point stands after `{-#` | ||
1069 | (goto-char pragma-start) | ||
1070 | (when (looking-at (rx (1+ (| upper "_")))) | ||
1071 | ;; found suitable sequence for pragma name | ||
1072 | (let ((pragma-end (match-end 0)) | ||
1073 | (pragma-value (match-string-no-properties 0))) | ||
1074 | (if (eq p pragma-end) | ||
1075 | ;; point is at the end of (in)complete pragma name | ||
1076 | ;; prepare resulting values | ||
1077 | (progn | ||
1078 | (setq prefix-start pragma-start) | ||
1079 | (setq prefix-end pragma-end) | ||
1080 | (setq prefix-value pragma-value) | ||
1081 | (setq prefix-type | ||
1082 | 'haskell-completions-pragma-name-prefix)) | ||
1083 | (when (and (> p pragma-end) | ||
1084 | (or (equal "OPTIONS_GHC" pragma-value) | ||
1085 | (equal "OPTIONS" pragma-value) | ||
1086 | (equal "LANGUAGE" pragma-value))) | ||
1087 | ;; point is after pragma name, so we need to check | ||
1088 | ;; special cases of `OPTIONS_GHC` and `LANGUAGE` pragmas | ||
1089 | ;; and provide a completion prefix for possible ghc | ||
1090 | ;; option or language extension. | ||
1091 | (goto-char pragma-end) | ||
1092 | (when (re-search-forward | ||
1093 | (rx (* anything) | ||
1094 | (1+ (regexp "\\S-"))) | ||
1095 | p | ||
1096 | t) | ||
1097 | (let* ((str (match-string-no-properties 0)) | ||
1098 | (split (split-string str (rx (| space "\n")) t)) | ||
1099 | (val (car (last split))) | ||
1100 | (end (point))) | ||
1101 | (when (and (equal p end) | ||
1102 | (not (string-match-p "#" val))) | ||
1103 | (setq prefix-value val) | ||
1104 | (backward-char (length val)) | ||
1105 | (setq prefix-start (point)) | ||
1106 | (setq prefix-end end) | ||
1107 | (setq | ||
1108 | prefix-type | ||
1109 | (if (not (equal "LANGUAGE" pragma-value)) | ||
1110 | 'haskell-completions-ghc-option-prefix | ||
1111 | 'haskell-completions-language-extension-prefix | ||
1112 | ))))))))))))) | ||
1113 | (when prefix-value | ||
1114 | (list prefix-start prefix-end prefix-value prefix-type))))) | ||
1115 | |||
1116 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1117 | ;; Hole filling | ||
1118 | |||
1119 | (defun intero-async-fill-at (buffer beg cont) | ||
1120 | "Make the blocking call to the process." | ||
1121 | (with-current-buffer buffer | ||
1122 | (intero-async-call | ||
1123 | 'backend | ||
1124 | (format | ||
1125 | ":fill %s %d %d" | ||
1126 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1127 | (save-excursion (goto-char beg) | ||
1128 | (line-number-at-pos)) | ||
1129 | (save-excursion (goto-char beg) | ||
1130 | (1+ (current-column)))) | ||
1131 | (list :buffer (current-buffer) :cont cont) | ||
1132 | (lambda (state reply) | ||
1133 | (if (or (string-match "^Couldn't guess" reply) | ||
1134 | (string-match "^Unable to " reply) | ||
1135 | (intero-parse-error reply)) | ||
1136 | (funcall (plist-get state :cont) (list)) | ||
1137 | (with-current-buffer (plist-get state :buffer) | ||
1138 | (let ((candidates | ||
1139 | (split-string | ||
1140 | (replace-regexp-in-string | ||
1141 | "\n$" "" | ||
1142 | reply) | ||
1143 | "[\r\n]" | ||
1144 | t))) | ||
1145 | (when candidates | ||
1146 | (funcall (plist-get state :cont) candidates))))))))) | ||
1147 | |||
1148 | (defun intero-grab-hole () | ||
1149 | "When user is at a hole _ or _foo, return the starting point of | ||
1150 | that hole." | ||
1151 | (let ((beg-end (intero-ident-pos-at-point))) | ||
1152 | (when beg-end | ||
1153 | (let ((string (buffer-substring-no-properties (car beg-end) (cdr beg-end)))) | ||
1154 | (when (string-match-p "^_" string) | ||
1155 | beg-end))))) | ||
1156 | |||
1157 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1158 | ;; ELDoc integration | ||
1159 | |||
1160 | (defvar-local intero-eldoc-cache (make-hash-table :test 'equal) | ||
1161 | "Cache for types of regions, used by `intero-eldoc'. | ||
1162 | This is not for saving on requests (we make a request even if | ||
1163 | something is in cache, overwriting the old entry), but rather for | ||
1164 | making types show immediately when we do have them cached.") | ||
1165 | |||
1166 | (defun intero-eldoc-maybe-print (msg) | ||
1167 | "Print MSG with eldoc if eldoc would display a message now. | ||
1168 | Like `eldoc-print-current-symbol-info', but just printing MSG | ||
1169 | instead of using `eldoc-documentation-function'." | ||
1170 | (with-demoted-errors "eldoc error: %s" | ||
1171 | (and (or (eldoc-display-message-p) | ||
1172 | ;; Erase the last message if we won't display a new one. | ||
1173 | (when eldoc-last-message | ||
1174 | (eldoc-message nil) | ||
1175 | nil)) | ||
1176 | (eldoc-message msg)))) | ||
1177 | |||
1178 | (defun intero-eldoc () | ||
1179 | "ELDoc backend for intero." | ||
1180 | (let ((buffer (intero-buffer 'backend))) | ||
1181 | (when (and buffer (process-live-p (get-buffer-process buffer))) | ||
1182 | (apply #'intero-get-type-at-async | ||
1183 | (lambda (beg end ty) | ||
1184 | (let ((response-status (intero-haskell-utils-repl-response-error-status ty))) | ||
1185 | (if (eq 'no-error response-status) | ||
1186 | (let ((msg (intero-fontify-expression | ||
1187 | (replace-regexp-in-string "[ \n]+" " " ty)))) | ||
1188 | ;; Got an updated type-at-point, cache and print now: | ||
1189 | (puthash (list beg end) | ||
1190 | msg | ||
1191 | intero-eldoc-cache) | ||
1192 | (intero-eldoc-maybe-print msg)) | ||
1193 | ;; But if we're seeing errors, invalidate cache-at-point: | ||
1194 | (remhash (list beg end) intero-eldoc-cache)))) | ||
1195 | (intero-thing-at-point)))) | ||
1196 | ;; If we have something cached at point, print that first: | ||
1197 | (gethash (intero-thing-at-point) intero-eldoc-cache)) | ||
1198 | |||
1199 | (defun intero-haskell-utils-repl-response-error-status (response) | ||
1200 | "Parse response REPL's RESPONSE for errors. | ||
1201 | Returns one of the following symbols: | ||
1202 | |||
1203 | + unknown-command | ||
1204 | + option-missing | ||
1205 | + interactive-error | ||
1206 | + no-error | ||
1207 | |||
1208 | *Warning*: this funciton covers only three kind of responses: | ||
1209 | |||
1210 | * \"unknown command …\" | ||
1211 | REPL missing requested command | ||
1212 | * \"<interactive>:3:5: …\" | ||
1213 | interactive REPL error | ||
1214 | * \"Couldn't guess that module name. Does it exist?\" | ||
1215 | (:type-at and maybe some other commands error) | ||
1216 | * *all other reposnses* are treated as success reposneses and | ||
1217 | 'no-error is returned." | ||
1218 | (let ((first-line (car (split-string response "\n" t)))) | ||
1219 | (cond | ||
1220 | ((null first-line) 'no-error) | ||
1221 | ((string-match-p "^unknown command" first-line) | ||
1222 | 'unknown-command) | ||
1223 | ((string-match-p | ||
1224 | "^Couldn't guess that module name. Does it exist?" | ||
1225 | first-line) | ||
1226 | 'option-missing) | ||
1227 | ((string-match-p "^<interactive>:" first-line) | ||
1228 | 'interactive-error) | ||
1229 | ((string-match-p "^<no location info>:" first-line) | ||
1230 | 'inspection-error) | ||
1231 | (t 'no-error)))) | ||
1232 | |||
1233 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1234 | ;; REPL | ||
1235 | |||
1236 | (defconst intero-prompt-regexp "^\4 ") | ||
1237 | |||
1238 | (defvar-local intero-repl-previous-buffer nil | ||
1239 | "Records the buffer to which `intero-repl-switch-back' should jump. | ||
1240 | This is set by `intero-repl-buffer', and should otherwise be nil.") | ||
1241 | |||
1242 | (defun intero-repl-clear-buffer () | ||
1243 | "Clear the current REPL buffer." | ||
1244 | (interactive) | ||
1245 | (let ((comint-buffer-maximum-size 0)) | ||
1246 | (comint-truncate-buffer))) | ||
1247 | |||
1248 | (defmacro intero-with-repl-buffer (prompt-options &rest body) | ||
1249 | "Evaluate given forms with the REPL as the current buffer. | ||
1250 | The REPL will be started if necessary, and the REPL buffer will | ||
1251 | be activated after evaluation. PROMPT-OPTIONS are passed to | ||
1252 | `intero-repl-buffer'. BODY is the forms to be evaluated." | ||
1253 | (declare (indent defun)) | ||
1254 | (let ((repl-buffer (cl-gensym))) | ||
1255 | `(let ((,repl-buffer (intero-repl-buffer ,prompt-options t))) | ||
1256 | (with-current-buffer ,repl-buffer | ||
1257 | ,@body) | ||
1258 | (when intero-pop-to-repl | ||
1259 | (pop-to-buffer ,repl-buffer))))) | ||
1260 | |||
1261 | (defun intero-repl-after-load () | ||
1262 | "Set the command to run after load." | ||
1263 | (interactive) | ||
1264 | (if (eq major-mode 'intero-repl-mode) | ||
1265 | (setq intero-repl-send-after-load | ||
1266 | (read-from-minibuffer | ||
1267 | "Command to run: " | ||
1268 | (or intero-repl-send-after-load | ||
1269 | (car (ring-elements comint-input-ring)) | ||
1270 | ""))) | ||
1271 | (error "Run this in the REPL."))) | ||
1272 | |||
1273 | (defun intero-repl-load (&optional prompt-options) | ||
1274 | "Load the current file in the REPL. | ||
1275 | If PROMPT-OPTIONS is non-nil, prompt with an options list." | ||
1276 | (interactive "P") | ||
1277 | (save-buffer) | ||
1278 | (let ((file (intero-path-for-ghci (intero-buffer-file-name)))) | ||
1279 | (intero-with-repl-buffer prompt-options | ||
1280 | (comint-simple-send | ||
1281 | (get-buffer-process (current-buffer)) | ||
1282 | ":set prompt \"\\n\"") | ||
1283 | (if (or (not intero-repl-last-loaded) | ||
1284 | (not (equal file intero-repl-last-loaded))) | ||
1285 | (progn | ||
1286 | (comint-simple-send | ||
1287 | (get-buffer-process (current-buffer)) | ||
1288 | (concat ":load " file)) | ||
1289 | (setq intero-repl-last-loaded file)) | ||
1290 | (comint-simple-send | ||
1291 | (get-buffer-process (current-buffer)) | ||
1292 | ":reload")) | ||
1293 | (when intero-repl-send-after-load | ||
1294 | (comint-simple-send | ||
1295 | (get-buffer-process (current-buffer)) | ||
1296 | intero-repl-send-after-load)) | ||
1297 | (comint-simple-send (get-buffer-process (current-buffer)) | ||
1298 | ":set prompt \"\\4 \"")))) | ||
1299 | |||
1300 | (defun intero-repl-eval-region (begin end &optional prompt-options) | ||
1301 | "Evaluate the code in region from BEGIN to END in the REPL. | ||
1302 | If the region is unset, the current line will be used. | ||
1303 | PROMPT-OPTIONS are passed to `intero-repl-buffer' if supplied." | ||
1304 | (interactive "r") | ||
1305 | (unless (use-region-p) | ||
1306 | (setq begin (line-beginning-position) | ||
1307 | end (line-end-position))) | ||
1308 | (let ((text (buffer-substring-no-properties begin end))) | ||
1309 | (intero-with-repl-buffer prompt-options | ||
1310 | (comint-simple-send | ||
1311 | (get-buffer-process (current-buffer)) | ||
1312 | text)))) | ||
1313 | |||
1314 | (defun intero-repl (&optional prompt-options) | ||
1315 | "Start up the REPL for this stack project. | ||
1316 | If PROMPT-OPTIONS is non-nil, prompt with an options list." | ||
1317 | (interactive "P") | ||
1318 | (switch-to-buffer-other-window (intero-repl-buffer prompt-options t))) | ||
1319 | |||
1320 | (defun intero-repl-restart () | ||
1321 | "Restart the REPL." | ||
1322 | (interactive) | ||
1323 | (let* ((root (intero-project-root)) | ||
1324 | (package-name (intero-package-name)) | ||
1325 | (backend-buffer (intero-buffer 'backend)) | ||
1326 | (name (format "*intero:%s:%s:repl*" | ||
1327 | (file-name-nondirectory root) | ||
1328 | package-name))) | ||
1329 | (when (get-buffer name) | ||
1330 | (with-current-buffer (get-buffer name) | ||
1331 | (goto-char (point-max)) | ||
1332 | (let ((process (get-buffer-process (current-buffer)))) | ||
1333 | (when process (kill-process process))) | ||
1334 | (intero-repl-mode-start backend-buffer | ||
1335 | (buffer-local-value 'intero-targets backend-buffer) | ||
1336 | nil | ||
1337 | (buffer-local-value 'intero-stack-yaml backend-buffer)))))) | ||
1338 | |||
1339 | (defun intero-repl-buffer (prompt-options &optional store-previous) | ||
1340 | "Start the REPL buffer. | ||
1341 | If PROMPT-OPTIONS is non-nil, prompt with an options list. When | ||
1342 | STORE-PREVIOUS is non-nil, note the caller's buffer in | ||
1343 | `intero-repl-previous-buffer'." | ||
1344 | (let* ((root (intero-project-root)) | ||
1345 | (package-name (intero-package-name)) | ||
1346 | (name (format "*intero:%s:%s:repl*" | ||
1347 | (file-name-nondirectory root) | ||
1348 | package-name)) | ||
1349 | (initial-buffer (current-buffer)) | ||
1350 | (backend-buffer (intero-buffer 'backend))) | ||
1351 | (with-current-buffer | ||
1352 | (or (let ((buf (get-buffer name))) | ||
1353 | (and (get-buffer-process buf) | ||
1354 | buf)) | ||
1355 | (with-current-buffer | ||
1356 | (get-buffer-create name) | ||
1357 | ;; The new buffer doesn't know if the initial buffer was hosted | ||
1358 | ;; remotely or not, so we need to extend by the host of the | ||
1359 | ;; initial buffer to cd. We could also achieve this by setting the | ||
1360 | ;; buffer's intero-buffer-host, but intero-repl-mode wipes this, so | ||
1361 | ;; we defer setting that until after. | ||
1362 | (cd (intero-extend-path-by-buffer-host root initial-buffer)) | ||
1363 | (intero-repl-mode) ; wipes buffer-local variables | ||
1364 | (intero-inherit-local-variables initial-buffer) | ||
1365 | (setq intero-buffer-host (intero-buffer-host initial-buffer)) | ||
1366 | (intero-repl-mode-start backend-buffer | ||
1367 | (buffer-local-value 'intero-targets backend-buffer) | ||
1368 | prompt-options | ||
1369 | (buffer-local-value 'intero-stack-yaml backend-buffer)) | ||
1370 | (current-buffer))) | ||
1371 | (progn | ||
1372 | (when store-previous | ||
1373 | (setq intero-repl-previous-buffer initial-buffer)) | ||
1374 | (current-buffer))))) | ||
1375 | |||
1376 | (defvar intero-hyperlink-map | ||
1377 | (let ((map (make-sparse-keymap))) | ||
1378 | (define-key map [mouse-1] 'intero-find-file-with-line-and-char) | ||
1379 | (define-key map [C-return] 'intero-find-file-with-line-and-char) | ||
1380 | map) | ||
1381 | "Keymap for clicking on links in REPL.") | ||
1382 | |||
1383 | (define-derived-mode intero-repl-mode comint-mode "Intero-REPL" | ||
1384 | "Interactive prompt for Intero." | ||
1385 | (when (and (not (eq major-mode 'fundamental-mode)) | ||
1386 | (eq this-command 'intero-repl-mode)) | ||
1387 | (error "You probably meant to run: M-x intero-repl")) | ||
1388 | (setq-local comint-prompt-regexp intero-prompt-regexp) | ||
1389 | (setq-local warning-suppress-types (cons '(undo discard-info) warning-suppress-types)) | ||
1390 | (setq-local comint-prompt-read-only t) | ||
1391 | (add-hook 'completion-at-point-functions 'intero-repl-completion-at-point nil t) | ||
1392 | (company-mode)) | ||
1393 | |||
1394 | (defun intero-repl-mode-start (backend-buffer targets prompt-options stack-yaml) | ||
1395 | "Start the process for the repl in the current buffer. | ||
1396 | BACKEND-BUFFER is used for options. TARGETS is the targets to | ||
1397 | load. If PROMPT-OPTIONS is non-nil, prompt with an options list. | ||
1398 | STACK-YAML is the stack yaml config to use. When nil, tries to | ||
1399 | use project-wide intero-stack-yaml when nil, otherwise uses | ||
1400 | stack's default)." | ||
1401 | (setq intero-targets targets) | ||
1402 | (setq intero-repl-last-loaded nil) | ||
1403 | (when stack-yaml | ||
1404 | (setq intero-stack-yaml stack-yaml)) | ||
1405 | (when prompt-options | ||
1406 | (intero-repl-options backend-buffer)) | ||
1407 | (let ((stack-yaml (if stack-yaml | ||
1408 | stack-yaml | ||
1409 | (buffer-local-value 'intero-stack-yaml backend-buffer))) | ||
1410 | (arguments (intero-make-options-list | ||
1411 | "ghci" | ||
1412 | (or targets | ||
1413 | (let ((package-name (buffer-local-value 'intero-package-name | ||
1414 | backend-buffer))) | ||
1415 | (unless (equal "" package-name) | ||
1416 | (list package-name)))) | ||
1417 | (buffer-local-value 'intero-repl-no-build backend-buffer) | ||
1418 | (buffer-local-value 'intero-repl-no-load backend-buffer) | ||
1419 | nil | ||
1420 | stack-yaml))) | ||
1421 | (insert (propertize | ||
1422 | (format "Starting:\n %s ghci %s\n" intero-stack-executable | ||
1423 | (combine-and-quote-strings arguments)) | ||
1424 | 'face 'font-lock-comment-face)) | ||
1425 | (let* ((script-buffer | ||
1426 | (with-current-buffer (find-file-noselect (intero-make-temp-file "intero-script")) | ||
1427 | ;; Commented out this line due to this bug: | ||
1428 | ;; https://github.com/chrisdone/intero/issues/569 | ||
1429 | ;; GHC 8.4.3 has some bug causing a panic on GHCi. | ||
1430 | ;; :set -fdefer-type-errors | ||
1431 | (insert ":set prompt \"\" | ||
1432 | :set -fbyte-code | ||
1433 | :set -fdiagnostics-color=never | ||
1434 | :set prompt \"\\4 \" | ||
1435 | ") | ||
1436 | (basic-save-buffer) | ||
1437 | (current-buffer))) | ||
1438 | (script | ||
1439 | (with-current-buffer script-buffer | ||
1440 | (intero-localize-path (intero-buffer-file-name))))) | ||
1441 | (let ((process | ||
1442 | (get-buffer-process | ||
1443 | (apply #'make-comint-in-buffer "intero" (current-buffer) intero-stack-executable nil "ghci" | ||
1444 | (append arguments | ||
1445 | (list "--verbosity" "silent") | ||
1446 | (list "--ghci-options" | ||
1447 | (concat "-ghci-script=" script)) | ||
1448 | (cl-mapcan (lambda (x) (list "--ghci-options" x)) intero-extra-ghci-options)))))) | ||
1449 | (when (process-live-p process) | ||
1450 | (set-process-query-on-exit-flag process nil) | ||
1451 | (message "Started Intero process for REPL.") | ||
1452 | (kill-buffer script-buffer)))))) | ||
1453 | |||
1454 | (defun intero-repl-options (backend-buffer) | ||
1455 | "Open an option menu to set options used when starting the REPL. | ||
1456 | Default options come from user customization and any temporary | ||
1457 | changes in the BACKEND-BUFFER." | ||
1458 | (interactive) | ||
1459 | (let* ((old-options | ||
1460 | (list | ||
1461 | (list :key "load-all" | ||
1462 | :title "Load all modules" | ||
1463 | :default (not (buffer-local-value 'intero-repl-no-load backend-buffer))) | ||
1464 | (list :key "build-first" | ||
1465 | :title "Build project first" | ||
1466 | :default (not (buffer-local-value 'intero-repl-no-build backend-buffer))))) | ||
1467 | (new-options (intero-multiswitch "Start REPL with options:" old-options))) | ||
1468 | (with-current-buffer backend-buffer | ||
1469 | (setq-local intero-repl-no-load (not (member "load-all" new-options))) | ||
1470 | (setq-local intero-repl-no-build (not (member "build-first" new-options)))))) | ||
1471 | |||
1472 | (font-lock-add-keywords | ||
1473 | 'intero-repl-mode | ||
1474 | '(("\\(\4\\)" | ||
1475 | (0 (prog1 () | ||
1476 | (compose-region (match-beginning 1) | ||
1477 | (match-end 1) | ||
1478 | ?λ)))))) | ||
1479 | |||
1480 | (define-key intero-repl-mode-map [remap move-beginning-of-line] 'intero-repl-beginning-of-line) | ||
1481 | (define-key intero-repl-mode-map [remap delete-backward-char] 'intero-repl-delete-backward-char) | ||
1482 | (define-key intero-repl-mode-map (kbd "C-c C-k") 'intero-repl-clear-buffer) | ||
1483 | (define-key intero-repl-mode-map (kbd "C-c C-z") 'intero-repl-switch-back) | ||
1484 | |||
1485 | (defun intero-repl-delete-backward-char () | ||
1486 | "Delete backwards, excluding the prompt." | ||
1487 | (interactive) | ||
1488 | (unless (looking-back intero-prompt-regexp (line-beginning-position)) | ||
1489 | (call-interactively 'delete-backward-char))) | ||
1490 | |||
1491 | (defun intero-repl-beginning-of-line () | ||
1492 | "Go to the beginning of the line, excluding the prompt." | ||
1493 | (interactive) | ||
1494 | (if (search-backward-regexp intero-prompt-regexp (line-beginning-position) t 1) | ||
1495 | (goto-char (+ 2 (line-beginning-position))) | ||
1496 | (call-interactively 'move-beginning-of-line))) | ||
1497 | |||
1498 | (defun intero-repl-switch-back () | ||
1499 | "Switch back to the buffer from which this REPL buffer was reached." | ||
1500 | (interactive) | ||
1501 | (if intero-repl-previous-buffer | ||
1502 | (switch-to-buffer-other-window intero-repl-previous-buffer) | ||
1503 | (message "No previous buffer."))) | ||
1504 | |||
1505 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1506 | ;; Buffer operations | ||
1507 | |||
1508 | (defun intero-thing-at-point () | ||
1509 | "Return (list START END) of something at the point." | ||
1510 | (if (region-active-p) | ||
1511 | (list (region-beginning) | ||
1512 | (region-end)) | ||
1513 | (let ((pos (intero-ident-pos-at-point))) | ||
1514 | (if pos | ||
1515 | (list (car pos) (cdr pos)) | ||
1516 | (list (point) (point)))))) | ||
1517 | |||
1518 | (defun intero-ident-at-point () | ||
1519 | "Return the identifier under point, or nil if none found. | ||
1520 | May return a qualified name." | ||
1521 | (let ((reg (intero-ident-pos-at-point))) | ||
1522 | (when reg | ||
1523 | (buffer-substring-no-properties (car reg) (cdr reg))))) | ||
1524 | |||
1525 | (defun intero-ident-pos-at-point () | ||
1526 | "Return the span of the identifier near point going backward. | ||
1527 | Returns nil if no identifier found or point is inside string or | ||
1528 | comment. May return a qualified name." | ||
1529 | (when (not (nth 8 (syntax-ppss))) | ||
1530 | ;; Do not handle comments and strings | ||
1531 | (let (start end) | ||
1532 | ;; Initial point position is non-deterministic, it may occur anywhere | ||
1533 | ;; inside identifier span, so the approach is: | ||
1534 | ;; - first try go left and find left boundary | ||
1535 | ;; - then try go right and find right boundary | ||
1536 | ;; | ||
1537 | ;; In both cases assume the longest path, e.g. when going left take into | ||
1538 | ;; account than point may occur at the end of identifier, when going right | ||
1539 | ;; take into account that point may occur at the beginning of identifier. | ||
1540 | ;; | ||
1541 | ;; We should handle `.` character very careful because it is heavily | ||
1542 | ;; overloaded. Examples of possible cases: | ||
1543 | ;; Control.Monad.>>= -- delimiter | ||
1544 | ;; Control.Monad.when -- delimiter | ||
1545 | ;; Data.Aeson..: -- delimiter and operator symbol | ||
1546 | ;; concat.map -- composition function | ||
1547 | ;; .? -- operator symbol | ||
1548 | (save-excursion | ||
1549 | ;; First, skip whitespace if we're on it, moving point to last | ||
1550 | ;; identifier char. That way, if we're at "map ", we'll see the word | ||
1551 | ;; "map". | ||
1552 | (when (and (looking-at-p (rx eol)) | ||
1553 | (not (bolp))) | ||
1554 | (backward-char)) | ||
1555 | (when (and (not (eobp)) | ||
1556 | (eq (char-syntax (char-after)) ? )) | ||
1557 | (skip-chars-backward " \t") | ||
1558 | (backward-char)) | ||
1559 | ;; Now let's try to go left. | ||
1560 | (save-excursion | ||
1561 | (if (not (intero-mode--looking-at-varsym)) | ||
1562 | ;; Looking at non-operator char, this is quite simple | ||
1563 | (progn | ||
1564 | (skip-syntax-backward "w_") | ||
1565 | ;; Remember position | ||
1566 | (setq start (point))) | ||
1567 | ;; Looking at operator char. | ||
1568 | (while (and (not (bobp)) | ||
1569 | (intero-mode--looking-at-varsym)) | ||
1570 | ;; skip all operator chars backward | ||
1571 | (setq start (point)) | ||
1572 | (backward-char)) | ||
1573 | ;; Extra check for case when reached beginning of the buffer. | ||
1574 | (when (intero-mode--looking-at-varsym) | ||
1575 | (setq start (point)))) | ||
1576 | ;; Slurp qualification part if present. If identifier is qualified in | ||
1577 | ;; case of non-operator point will stop before `.` dot, but in case of | ||
1578 | ;; operator it will stand at `.` delimiting dot. So if we're looking | ||
1579 | ;; at `.` let's step one char forward and try to get qualification | ||
1580 | ;; part. | ||
1581 | (goto-char start) | ||
1582 | (when (looking-at-p (rx ".")) | ||
1583 | (forward-char)) | ||
1584 | (let ((pos (intero-mode--skip-qualification-backward))) | ||
1585 | (when pos | ||
1586 | (setq start pos)))) | ||
1587 | ;; Finally, let's try to go right. | ||
1588 | (save-excursion | ||
1589 | ;; Try to slurp qualification part first. | ||
1590 | (skip-syntax-forward "w_") | ||
1591 | (setq end (point)) | ||
1592 | (while (and (looking-at-p (rx "." upper)) | ||
1593 | (not (zerop (progn (forward-char) | ||
1594 | (skip-syntax-forward "w_"))))) | ||
1595 | (setq end (point))) | ||
1596 | ;; If point was at non-operator we already done, otherwise we need an | ||
1597 | ;; extra check. | ||
1598 | (while (intero-mode--looking-at-varsym) | ||
1599 | (forward-char) | ||
1600 | (setq end (point)))) | ||
1601 | (when (not (= start end)) | ||
1602 | (cons start end)))))) | ||
1603 | |||
1604 | (defun intero-mode--looking-at-varsym () | ||
1605 | "Return t when point stands at operator symbol." | ||
1606 | (when (not (eobp)) | ||
1607 | (let ((lex (intero-lexeme-classify-by-first-char (char-after)))) | ||
1608 | (or (eq lex 'varsym) | ||
1609 | (eq lex 'consym))))) | ||
1610 | |||
1611 | (defun intero-mode--skip-qualification-backward () | ||
1612 | "Skip qualified part of identifier backward. | ||
1613 | Expects point stands *after* delimiting dot. | ||
1614 | Returns beginning position of qualified part or nil if no qualified part found." | ||
1615 | (when (not (and (bobp) | ||
1616 | (looking-at-p (rx bol)))) | ||
1617 | (let ((case-fold-search nil) | ||
1618 | pos) | ||
1619 | (while (and (eq (char-before) ?.) | ||
1620 | (progn (backward-char) | ||
1621 | (not (zerop (skip-syntax-backward "w'")))) | ||
1622 | (skip-syntax-forward "'") | ||
1623 | (looking-at-p "[[:upper:]]")) | ||
1624 | (setq pos (point))) | ||
1625 | pos))) | ||
1626 | |||
1627 | (defun intero-lexeme-classify-by-first-char (char) | ||
1628 | "Classify token by CHAR. | ||
1629 | CHAR is a chararacter that is assumed to be the first character | ||
1630 | of a token." | ||
1631 | (let ((category (get-char-code-property char 'general-category))) | ||
1632 | |||
1633 | (cond | ||
1634 | ((or (member char '(?! ?# ?$ ?% ?& ?* ?+ ?. ?/ ?< ?= ?> ?? ?@ ?^ ?| ?~ ?\\ ?-)) | ||
1635 | (and (> char 127) | ||
1636 | (member category '(Pc Pd Po Sm Sc Sk So)))) | ||
1637 | 'varsym) | ||
1638 | ((equal char ?:) | ||
1639 | 'consym) | ||
1640 | ((equal char ?\') | ||
1641 | 'char) | ||
1642 | ((equal char ?\") | ||
1643 | 'string) | ||
1644 | ((member category '(Lu Lt)) | ||
1645 | 'conid) | ||
1646 | ((or (equal char ?_) | ||
1647 | (member category '(Ll Lo))) | ||
1648 | 'varid) | ||
1649 | ((and (>= char ?0) (<= char ?9)) | ||
1650 | 'number) | ||
1651 | ((member char '(?\] ?\[ ?\( ?\) ?\{ ?\} ?\` ?\, ?\;)) | ||
1652 | 'special)))) | ||
1653 | |||
1654 | (defun intero-buffer-file-name (&optional buffer) | ||
1655 | "Call function `buffer-file-name' for BUFFER and clean its result. | ||
1656 | The path returned is canonicalized and stripped of any text properties." | ||
1657 | (let ((name (buffer-file-name buffer))) | ||
1658 | (when name | ||
1659 | (intero-canonicalize-path (substring-no-properties name))))) | ||
1660 | |||
1661 | (defun intero-paths-for-same-file (path-1 path-2) | ||
1662 | "Compare PATH-1 and PATH-2 to see if they represent the same file." | ||
1663 | (let ((simplify-path #'(lambda (path) | ||
1664 | (if (tramp-tramp-file-p path) | ||
1665 | (let* ((dissection (tramp-dissect-file-name path)) | ||
1666 | (host (tramp-file-name-host dissection)) | ||
1667 | (localname (tramp-file-name-localname dissection))) | ||
1668 | (concat host ":" localname)) | ||
1669 | (expand-file-name path))))) | ||
1670 | (string= (funcall simplify-path path-1) (funcall simplify-path path-2)))) | ||
1671 | |||
1672 | (defun intero-buffer-host (&optional buffer) | ||
1673 | "Get the hostname of the box hosting the file behind the BUFFER." | ||
1674 | (with-current-buffer (or buffer (current-buffer)) | ||
1675 | (let ((file (intero-buffer-file-name))) | ||
1676 | (if intero-buffer-host | ||
1677 | intero-buffer-host | ||
1678 | (setq intero-buffer-host | ||
1679 | (when file | ||
1680 | (if (tramp-tramp-file-p file) | ||
1681 | (tramp-file-name-host (tramp-dissect-file-name file)) | ||
1682 | ""))))))) | ||
1683 | |||
1684 | (defun intero-extend-path-by-buffer-host (path &optional buffer) | ||
1685 | "Take a PATH, and extend it by the host of the provided BUFFER (default to current buffer). Return PATH unchanged if the file is local, or the BUFFER has no host." | ||
1686 | (with-current-buffer (or buffer (current-buffer)) | ||
1687 | (if (or (eq nil (intero-buffer-host)) (eq "" (intero-buffer-host))) | ||
1688 | path | ||
1689 | (expand-file-name | ||
1690 | (concat "/" | ||
1691 | (intero-buffer-host) | ||
1692 | ":" | ||
1693 | path))))) | ||
1694 | |||
1695 | (defvar-local intero-temp-file-name nil | ||
1696 | "The name of a temporary file to which the current buffer's content is copied.") | ||
1697 | |||
1698 | (defun intero-temp-file-p (path) | ||
1699 | "Is PATH a temp file?" | ||
1700 | (string= (file-name-directory path) | ||
1701 | (file-name-directory (intero-temp-file-dir)))) | ||
1702 | |||
1703 | (defun intero-temp-file-origin-buffer (temp-file) | ||
1704 | "Get the original buffer that TEMP-FILE was created for." | ||
1705 | (or | ||
1706 | (gethash (intero-canonicalize-path temp-file) | ||
1707 | intero-temp-file-buffer-mapping) | ||
1708 | (cl-loop | ||
1709 | for buffer in (buffer-list) | ||
1710 | when (string= (intero-canonicalize-path temp-file) | ||
1711 | (buffer-local-value 'intero-temp-file-name buffer)) | ||
1712 | return buffer))) | ||
1713 | |||
1714 | (defun intero-unmangle-file-path (file) | ||
1715 | "If FILE is an intero temp file, return the original source path, otherwise FILE." | ||
1716 | (or (when (intero-temp-file-p file) | ||
1717 | (let ((origin-buffer (intero-temp-file-origin-buffer file))) | ||
1718 | (when origin-buffer | ||
1719 | (buffer-file-name origin-buffer)))) | ||
1720 | file)) | ||
1721 | |||
1722 | (defun intero-make-temp-file (prefix &optional dir-flag suffix) | ||
1723 | "Like `make-temp-file', but using a different temp directory. | ||
1724 | PREFIX, DIR-FLAG and SUFFIX are all passed to `make-temp-file' | ||
1725 | unmodified. A different directory is applied so that if docker | ||
1726 | is used with stack, the commands run inside docker can find the | ||
1727 | path." | ||
1728 | (let ((temporary-file-directory | ||
1729 | (intero-temp-file-dir))) | ||
1730 | (make-directory temporary-file-directory t) | ||
1731 | (make-temp-file prefix dir-flag suffix))) | ||
1732 | |||
1733 | (defun intero-temp-file-dir () | ||
1734 | "Get the temporary file directory for the current intero project." | ||
1735 | (let* ((intero-absolute-project-root | ||
1736 | (intero-extend-path-by-buffer-host (intero-project-root))) | ||
1737 | (temporary-file-directory | ||
1738 | (expand-file-name ".stack-work/intero/" | ||
1739 | intero-absolute-project-root))) | ||
1740 | temporary-file-directory)) | ||
1741 | |||
1742 | (defun intero-temp-file-name (&optional buffer) | ||
1743 | "Return the name of a temp file pertaining to BUFFER." | ||
1744 | (with-current-buffer (or buffer (current-buffer)) | ||
1745 | (or intero-temp-file-name | ||
1746 | (progn (setq intero-temp-file-name | ||
1747 | (intero-canonicalize-path | ||
1748 | (intero-make-temp-file | ||
1749 | "intero" nil | ||
1750 | (concat "-TEMP." (if (buffer-file-name) | ||
1751 | (file-name-extension (buffer-file-name)) | ||
1752 | "hs"))))) | ||
1753 | (puthash intero-temp-file-name | ||
1754 | (current-buffer) | ||
1755 | intero-temp-file-buffer-mapping) | ||
1756 | intero-temp-file-name)))) | ||
1757 | |||
1758 | (defun intero-staging-file-name (&optional buffer) | ||
1759 | "Return the name of a temp file containing an up-to-date copy of BUFFER's contents." | ||
1760 | (with-current-buffer (or buffer (current-buffer)) | ||
1761 | (let* ((contents (buffer-string)) | ||
1762 | (fname (intero-canonicalize-path | ||
1763 | (intero-make-temp-file | ||
1764 | "intero" nil | ||
1765 | (concat "-STAGING." (if (buffer-file-name) | ||
1766 | (file-name-extension (buffer-file-name)) | ||
1767 | "hs")))))) | ||
1768 | (with-temp-file fname | ||
1769 | (insert contents)) | ||
1770 | fname))) | ||
1771 | |||
1772 | (defun intero-quote-path-for-ghci (path) | ||
1773 | "Quote PATH as necessary so that it can be passed to a GHCi :command." | ||
1774 | (concat "\"" (replace-regexp-in-string "\\([\\\"]\\)" "\\\\\\1" path nil nil) "\"")) | ||
1775 | |||
1776 | (defun intero-path-for-ghci (path) | ||
1777 | "Turn a possibly-remote PATH into one that can be passed to a GHCi :command." | ||
1778 | (intero-quote-path-for-ghci (intero-localize-path path))) | ||
1779 | |||
1780 | (defun intero-localize-path (path) | ||
1781 | "Turn a possibly-remote PATH to a purely local one. | ||
1782 | This is used to create paths which a remote intero process can load." | ||
1783 | (if (tramp-tramp-file-p path) | ||
1784 | (tramp-file-name-localname (tramp-dissect-file-name path)) | ||
1785 | path)) | ||
1786 | |||
1787 | (defun intero-canonicalize-path (path) | ||
1788 | "Return a standardized version of PATH. | ||
1789 | Path names are standardised and drive names are | ||
1790 | capitalized (relevant on Windows)." | ||
1791 | (intero-capitalize-drive-letter (convert-standard-filename path))) | ||
1792 | |||
1793 | (defun intero-capitalize-drive-letter (path) | ||
1794 | "Ensures the drive letter is capitalized in PATH. | ||
1795 | This applies to paths of the form | ||
1796 | x:\\foo\\bar (i.e., Windows)." | ||
1797 | (save-match-data | ||
1798 | (let ((drive-path (split-string path ":\\\\"))) | ||
1799 | (if (or (null (car drive-path)) (null (cdr drive-path))) | ||
1800 | path | ||
1801 | (concat (upcase (car drive-path)) ":\\" (cadr drive-path)))))) | ||
1802 | |||
1803 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1804 | ;; Query/commands | ||
1805 | |||
1806 | (defun intero-get-all-types () | ||
1807 | "Get all types in all expressions in all modules." | ||
1808 | (intero-blocking-network-call 'backend ":all-types")) | ||
1809 | |||
1810 | (defun intero-get-type-at (beg end) | ||
1811 | "Get the type at the given region denoted by BEG and END." | ||
1812 | (let ((result (intero-get-type-at-helper beg end))) | ||
1813 | (if (string-match (regexp-quote "Couldn't guess that module name. Does it exist?") | ||
1814 | result) | ||
1815 | (progn (flycheck-buffer) | ||
1816 | (message "No type information yet, compiling module ...") | ||
1817 | (intero-get-type-at-helper-process beg end)) | ||
1818 | result))) | ||
1819 | |||
1820 | (defun intero-get-type-at-helper (beg end) | ||
1821 | (replace-regexp-in-string | ||
1822 | "\n$" "" | ||
1823 | (intero-blocking-network-call | ||
1824 | 'backend | ||
1825 | (intero-format-get-type-at beg end)))) | ||
1826 | |||
1827 | (defun intero-get-type-at-helper-process (beg end) | ||
1828 | (replace-regexp-in-string | ||
1829 | "\n$" "" | ||
1830 | (intero-blocking-call | ||
1831 | 'backend | ||
1832 | (intero-format-get-type-at beg end)))) | ||
1833 | |||
1834 | (defun intero-get-type-at-async (cont beg end) | ||
1835 | "Call CONT with type of the region denoted by BEG and END. | ||
1836 | CONT is called within the current buffer, with BEG, END and the | ||
1837 | type as arguments." | ||
1838 | (intero-async-network-call | ||
1839 | 'backend | ||
1840 | (intero-format-get-type-at beg end) | ||
1841 | (list :cont cont | ||
1842 | :source-buffer (current-buffer) | ||
1843 | :beg beg | ||
1844 | :end end) | ||
1845 | (lambda (state reply) | ||
1846 | (with-current-buffer (plist-get state :source-buffer) | ||
1847 | (funcall (plist-get state :cont) | ||
1848 | (plist-get state :beg) | ||
1849 | (plist-get state :end) | ||
1850 | (replace-regexp-in-string "\n$" "" reply)))))) | ||
1851 | |||
1852 | (defun intero-format-get-type-at (beg end) | ||
1853 | "Compose a request for getting types in region from BEG to END." | ||
1854 | (format ":type-at %s %d %d %d %d %S" | ||
1855 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1856 | (save-excursion (goto-char beg) | ||
1857 | (line-number-at-pos)) | ||
1858 | (save-excursion (goto-char beg) | ||
1859 | (1+ (current-column))) | ||
1860 | (save-excursion (goto-char end) | ||
1861 | (line-number-at-pos)) | ||
1862 | (save-excursion (goto-char end) | ||
1863 | (1+ (current-column))) | ||
1864 | (buffer-substring-no-properties beg end))) | ||
1865 | |||
1866 | (defun intero-get-info-of (thing) | ||
1867 | "Get info for THING." | ||
1868 | (let ((optimistic-result | ||
1869 | (replace-regexp-in-string | ||
1870 | "\n$" "" | ||
1871 | (intero-blocking-call | ||
1872 | 'backend | ||
1873 | (format ":info %s" thing))))) | ||
1874 | (if (string-match-p "^<interactive>" optimistic-result) | ||
1875 | ;; Load the module Interpreted so that we get information, | ||
1876 | ;; then restore bytecode. | ||
1877 | (progn (intero-async-call | ||
1878 | 'backend | ||
1879 | ":set -fbyte-code") | ||
1880 | (set-buffer-modified-p t) | ||
1881 | (save-buffer) | ||
1882 | (unless (member 'save flycheck-check-syntax-automatically) | ||
1883 | (intero-async-call | ||
1884 | 'backend | ||
1885 | (concat ":load " (intero-path-for-ghci (intero-temp-file-name))))) | ||
1886 | (intero-async-call | ||
1887 | 'backend | ||
1888 | ":set -fobject-code") | ||
1889 | (replace-regexp-in-string | ||
1890 | "\n$" "" | ||
1891 | (intero-blocking-call | ||
1892 | 'backend | ||
1893 | (format ":info %s" thing)))) | ||
1894 | optimistic-result))) | ||
1895 | |||
1896 | (defconst intero-unloaded-module-string "Couldn't guess that module name. Does it exist?") | ||
1897 | |||
1898 | (defun intero-get-loc-at (beg end) | ||
1899 | "Get the location of the identifier denoted by BEG and END." | ||
1900 | (let ((result (intero-get-loc-at-helper beg end))) | ||
1901 | (if (string-match (regexp-quote intero-unloaded-module-string) | ||
1902 | result) | ||
1903 | (progn (flycheck-buffer) | ||
1904 | (message "No location information yet, compiling module ...") | ||
1905 | (intero-get-loc-at-helper-process beg end)) | ||
1906 | result))) | ||
1907 | |||
1908 | (defun intero-get-loc-at-helper (beg end) | ||
1909 | "Make the blocking call to the process." | ||
1910 | (replace-regexp-in-string | ||
1911 | "\n$" "" | ||
1912 | (intero-blocking-network-call | ||
1913 | 'backend | ||
1914 | (format ":loc-at %s %d %d %d %d %S" | ||
1915 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1916 | (save-excursion (goto-char beg) | ||
1917 | (line-number-at-pos)) | ||
1918 | (save-excursion (goto-char beg) | ||
1919 | (1+ (current-column))) | ||
1920 | (save-excursion (goto-char end) | ||
1921 | (line-number-at-pos)) | ||
1922 | (save-excursion (goto-char end) | ||
1923 | (1+ (current-column))) | ||
1924 | (buffer-substring-no-properties beg end))))) | ||
1925 | |||
1926 | (defun intero-get-loc-at-helper-process (beg end) | ||
1927 | "Make the blocking call to the process." | ||
1928 | (replace-regexp-in-string | ||
1929 | "\n$" "" | ||
1930 | (intero-blocking-call | ||
1931 | 'backend | ||
1932 | (format ":loc-at %s %d %d %d %d %S" | ||
1933 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1934 | (save-excursion (goto-char beg) | ||
1935 | (line-number-at-pos)) | ||
1936 | (save-excursion (goto-char beg) | ||
1937 | (1+ (current-column))) | ||
1938 | (save-excursion (goto-char end) | ||
1939 | (line-number-at-pos)) | ||
1940 | (save-excursion (goto-char end) | ||
1941 | (1+ (current-column))) | ||
1942 | (buffer-substring-no-properties beg end))))) | ||
1943 | |||
1944 | (defun intero-get-uses-at (beg end) | ||
1945 | "Return usage list for identifier denoted by BEG and END." | ||
1946 | (let ((result (intero-get-uses-at-helper beg end))) | ||
1947 | (if (string-match (regexp-quote intero-unloaded-module-string) | ||
1948 | result) | ||
1949 | (progn (flycheck-buffer) | ||
1950 | (message "No use information yet, compiling module ...") | ||
1951 | (intero-get-uses-at-helper-process beg end)) | ||
1952 | result))) | ||
1953 | |||
1954 | (defun intero-get-uses-at-helper (beg end) | ||
1955 | "Return usage list for identifier denoted by BEG and END." | ||
1956 | (replace-regexp-in-string | ||
1957 | "\n$" "" | ||
1958 | (intero-blocking-network-call | ||
1959 | 'backend | ||
1960 | (format ":uses %s %d %d %d %d %S" | ||
1961 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1962 | (save-excursion (goto-char beg) | ||
1963 | (line-number-at-pos)) | ||
1964 | (save-excursion (goto-char beg) | ||
1965 | (1+ (current-column))) | ||
1966 | (save-excursion (goto-char end) | ||
1967 | (line-number-at-pos)) | ||
1968 | (save-excursion (goto-char end) | ||
1969 | (1+ (current-column))) | ||
1970 | (buffer-substring-no-properties beg end))))) | ||
1971 | |||
1972 | (defun intero-get-uses-at-helper-process (beg end) | ||
1973 | "Return usage list for identifier denoted by BEG and END." | ||
1974 | (replace-regexp-in-string | ||
1975 | "\n$" "" | ||
1976 | (intero-blocking-call | ||
1977 | 'backend | ||
1978 | (format ":uses %s %d %d %d %d %S" | ||
1979 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1980 | (save-excursion (goto-char beg) | ||
1981 | (line-number-at-pos)) | ||
1982 | (save-excursion (goto-char beg) | ||
1983 | (1+ (current-column))) | ||
1984 | (save-excursion (goto-char end) | ||
1985 | (line-number-at-pos)) | ||
1986 | (save-excursion (goto-char end) | ||
1987 | (1+ (current-column))) | ||
1988 | (buffer-substring-no-properties beg end))))) | ||
1989 | |||
1990 | (defun intero-get-completions (source-buffer beg end cont) | ||
1991 | "Get completions and send to SOURCE-BUFFER. | ||
1992 | Prefix is marked by positions BEG and END. Completions are | ||
1993 | passed to CONT in SOURCE-BUFFER." | ||
1994 | (intero-async-network-call | ||
1995 | 'backend | ||
1996 | (format ":complete-at %s %d %d %d %d %S" | ||
1997 | (intero-path-for-ghci (intero-temp-file-name)) | ||
1998 | (save-excursion (goto-char beg) | ||
1999 | (line-number-at-pos)) | ||
2000 | (save-excursion (goto-char beg) | ||
2001 | (1+ (current-column))) | ||
2002 | (save-excursion (goto-char end) | ||
2003 | (line-number-at-pos)) | ||
2004 | (save-excursion (goto-char end) | ||
2005 | (1+ (current-column))) | ||
2006 | (buffer-substring-no-properties beg end)) | ||
2007 | (list :cont cont :source-buffer source-buffer) | ||
2008 | (lambda (state reply) | ||
2009 | (with-current-buffer | ||
2010 | (plist-get state :source-buffer) | ||
2011 | (funcall | ||
2012 | (plist-get state :cont) | ||
2013 | (intero-completion-response-to-list reply)))))) | ||
2014 | |||
2015 | (defun intero-completion-response-to-list (reply) | ||
2016 | "Convert the REPLY from a backend completion to a list." | ||
2017 | (if (string-match-p "^*** Exception" reply) | ||
2018 | (list) | ||
2019 | (mapcar | ||
2020 | (lambda (x) | ||
2021 | (replace-regexp-in-string "\\\"" "" x)) | ||
2022 | (split-string reply "\n" t)))) | ||
2023 | |||
2024 | (defun intero-get-repl-completions (source-buffer prefix cont) | ||
2025 | "Get REPL completions and send to SOURCE-BUFFER. | ||
2026 | Completions for PREFIX are passed to CONT in SOURCE-BUFFER." | ||
2027 | (intero-async-call | ||
2028 | 'backend | ||
2029 | (format ":complete repl %S" prefix) | ||
2030 | (list :cont cont :source-buffer source-buffer) | ||
2031 | (lambda (state reply) | ||
2032 | (with-current-buffer | ||
2033 | (plist-get state :source-buffer) | ||
2034 | (funcall | ||
2035 | (plist-get state :cont) | ||
2036 | (mapcar | ||
2037 | (lambda (x) | ||
2038 | (replace-regexp-in-string "\\\"" "" x)) | ||
2039 | (cdr (split-string reply "\n" t)))))))) | ||
2040 | |||
2041 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
2042 | ;; Process communication | ||
2043 | |||
2044 | (defun intero-call-process (program &optional infile destination display &rest args) | ||
2045 | "Synchronously call PROGRAM. | ||
2046 | INFILE, DESTINATION, DISPLAY and ARGS are as for | ||
2047 | 'call-process'/'process-file'. Provides TRAMP compatibility for | ||
2048 | 'call-process'; when the 'default-directory' is on a remote | ||
2049 | machine, PROGRAM is launched on that machine." | ||
2050 | (let ((process-args (append (list program infile destination display) args))) | ||
2051 | (apply 'process-file process-args))) | ||
2052 | |||
2053 | (defun intero-call-stack (&optional infile destination display stack-yaml &rest args) | ||
2054 | "Synchronously call stack using the same arguments as `intero-call-process'. | ||
2055 | INFILE, DESTINATION, DISPLAY and ARGS are as for | ||
2056 | `call-process'/`process-file'. STACK-YAML specifies which stack | ||
2057 | yaml config to use, or stack's default when nil." | ||
2058 | (let ((stack-yaml-args (when stack-yaml | ||
2059 | (list "--stack-yaml" stack-yaml)))) | ||
2060 | (apply #'intero-call-process intero-stack-executable | ||
2061 | infile destination display | ||
2062 | (append stack-yaml-args args)))) | ||
2063 | |||
2064 | (defun intero-delete-worker (worker) | ||
2065 | "Delete the given WORKER." | ||
2066 | (when (intero-buffer-p worker) | ||
2067 | (with-current-buffer (intero-get-buffer-create worker) | ||
2068 | (when (get-buffer-process (current-buffer)) | ||
2069 | (setq intero-deleting t) | ||
2070 | (kill-process (get-buffer-process (current-buffer))) | ||
2071 | (delete-process (get-buffer-process (current-buffer)))) | ||
2072 | (kill-buffer (current-buffer))))) | ||
2073 | |||
2074 | (defun intero-blocking-call (worker cmd) | ||
2075 | "Send WORKER the command string CMD and block pending its result." | ||
2076 | (let ((result (list nil))) | ||
2077 | (intero-async-call | ||
2078 | worker | ||
2079 | cmd | ||
2080 | result | ||
2081 | (lambda (result reply) | ||
2082 | (setf (car result) reply))) | ||
2083 | (let ((buffer (intero-buffer worker))) | ||
2084 | (while (not (null (buffer-local-value 'intero-callbacks buffer))) | ||
2085 | (sleep-for 0.0001))) | ||
2086 | (car result))) | ||
2087 | |||
2088 | (defun intero-blocking-network-call (worker cmd) | ||
2089 | "Send WORKER the command string CMD via the network and block pending its result." | ||
2090 | (let ((result (list nil))) | ||
2091 | (intero-async-network-call | ||
2092 | worker | ||
2093 | cmd | ||
2094 | result | ||
2095 | (lambda (result reply) | ||
2096 | (setf (car result) reply))) | ||
2097 | (while (eq (car result) nil) | ||
2098 | (sleep-for 0.0001)) | ||
2099 | (car result))) | ||
2100 | |||
2101 | (defun intero-async-network-call (worker cmd &optional state callback) | ||
2102 | "Send WORKER the command string CMD, via a network connection. | ||
2103 | The result, along with the given STATE, is passed to CALLBACK | ||
2104 | as (CALLBACK STATE REPLY)." | ||
2105 | (if (file-remote-p default-directory) | ||
2106 | (intero-async-call worker cmd state callback) | ||
2107 | (let ((buffer (intero-buffer worker))) | ||
2108 | (if (and buffer (process-live-p (get-buffer-process buffer))) | ||
2109 | (with-current-buffer buffer | ||
2110 | (if intero-service-port | ||
2111 | (let* ((buffer (generate-new-buffer (format " intero-network:%S" worker))) | ||
2112 | (process | ||
2113 | (make-network-process | ||
2114 | :name (format "%S" worker) | ||
2115 | :buffer buffer | ||
2116 | :host 'local | ||
2117 | :service intero-service-port | ||
2118 | :family 'ipv4 | ||
2119 | :nowait t | ||
2120 | :noquery t | ||
2121 | :sentinel 'intero-network-call-sentinel))) | ||
2122 | (with-current-buffer buffer | ||
2123 | (setq intero-async-network-cmd cmd) | ||
2124 | (setq intero-async-network-state state) | ||
2125 | (setq intero-async-network-worker worker) | ||
2126 | (setq intero-async-network-callback callback))) | ||
2127 | (progn (when intero-debug (message "No `intero-service-port', falling back ...")) | ||
2128 | (intero-async-call worker cmd state callback)))) | ||
2129 | (error "Intero process is not running: run M-x intero-restart to start it"))))) | ||
2130 | |||
2131 | (defun intero-network-call-sentinel (process event) | ||
2132 | (pcase event | ||
2133 | ;; This event sometimes gets sent when (delete-process) is called, but | ||
2134 | ;; inconsistently. We can't rely on it for killing buffers, but we need to | ||
2135 | ;; handle the possibility. | ||
2136 | ("deleted\n") | ||
2137 | |||
2138 | ("open\n" | ||
2139 | (with-current-buffer (process-buffer process) | ||
2140 | (when intero-debug (message "Connected to service, sending %S" intero-async-network-cmd)) | ||
2141 | (setq intero-async-network-connected t) | ||
2142 | (if intero-async-network-cmd | ||
2143 | (process-send-string process (concat intero-async-network-cmd "\n")) | ||
2144 | (delete-process process) | ||
2145 | (kill-buffer (process-buffer process))))) | ||
2146 | (_ | ||
2147 | (with-current-buffer (process-buffer process) | ||
2148 | (if intero-async-network-connected | ||
2149 | (when intero-async-network-callback | ||
2150 | (when intero-debug (message "Calling callback with %S" (buffer-string))) | ||
2151 | (funcall intero-async-network-callback | ||
2152 | intero-async-network-state | ||
2153 | (buffer-string))) | ||
2154 | ;; We didn't successfully connect, so let's fallback to the | ||
2155 | ;; process pipe. | ||
2156 | (when intero-async-network-callback | ||
2157 | (when intero-debug (message "Failed to connect, falling back ... ")) | ||
2158 | (setq intero-async-network-callback nil) | ||
2159 | (intero-async-call | ||
2160 | intero-async-network-worker | ||
2161 | intero-async-network-cmd | ||
2162 | intero-async-network-state | ||
2163 | intero-async-network-callback)))) | ||
2164 | (delete-process process) | ||
2165 | (kill-buffer (process-buffer process))))) | ||
2166 | |||
2167 | (defun intero-async-call (worker cmd &optional state callback) | ||
2168 | "Send WORKER the command string CMD. | ||
2169 | The result, along with the given STATE, is passed to CALLBACK | ||
2170 | as (CALLBACK STATE REPLY)." | ||
2171 | (let ((buffer (intero-buffer worker))) | ||
2172 | (if (and buffer (process-live-p (get-buffer-process buffer))) | ||
2173 | (progn (with-current-buffer buffer | ||
2174 | (setq intero-callbacks | ||
2175 | (append intero-callbacks | ||
2176 | (list (list state | ||
2177 | (or callback #'ignore) | ||
2178 | cmd))))) | ||
2179 | (when intero-debug | ||
2180 | (message "[Intero] -> %s" cmd)) | ||
2181 | (comint-simple-send (intero-process worker) cmd)) | ||
2182 | (error "Intero process is not running: run M-x intero-restart to start it")))) | ||
2183 | |||
2184 | (defun intero-buffer (worker) | ||
2185 | "Get the WORKER buffer for the current directory." | ||
2186 | (let ((buffer (intero-get-buffer-create worker)) | ||
2187 | (targets (buffer-local-value 'intero-targets (current-buffer)))) | ||
2188 | (if (get-buffer-process buffer) | ||
2189 | buffer | ||
2190 | (intero-get-worker-create worker targets (current-buffer) | ||
2191 | (buffer-local-value | ||
2192 | 'intero-stack-yaml (current-buffer)))))) | ||
2193 | |||
2194 | (defun intero-process (worker) | ||
2195 | "Get the WORKER process for the current directory." | ||
2196 | (get-buffer-process (intero-buffer worker))) | ||
2197 | |||
2198 | (defun intero-get-worker-create (worker &optional targets source-buffer stack-yaml) | ||
2199 | "Start the given WORKER. | ||
2200 | If provided, use the specified TARGETS, SOURCE-BUFFER and STACK-YAML." | ||
2201 | (let* ((buffer (intero-get-buffer-create worker))) | ||
2202 | (if (get-buffer-process buffer) | ||
2203 | buffer | ||
2204 | (let ((install-status (intero-installed-p))) | ||
2205 | (if (eq install-status 'installed) | ||
2206 | (intero-start-process-in-buffer buffer targets source-buffer stack-yaml) | ||
2207 | (intero-auto-install buffer install-status targets source-buffer stack-yaml)))))) | ||
2208 | |||
2209 | (defun intero-auto-install (buffer install-status &optional targets source-buffer stack-yaml) | ||
2210 | "Automatically install Intero appropriately for BUFFER. | ||
2211 | INSTALL-STATUS indicates the current installation status. | ||
2212 | If supplied, use the given TARGETS, SOURCE-BUFFER and STACK-YAML." | ||
2213 | (if (buffer-local-value 'intero-give-up buffer) | ||
2214 | buffer | ||
2215 | (let ((source-buffer (or source-buffer (current-buffer)))) | ||
2216 | (switch-to-buffer buffer) | ||
2217 | (erase-buffer) | ||
2218 | (insert (cl-case install-status | ||
2219 | (not-installed "Intero is not installed in the Stack environment.") | ||
2220 | (wrong-version "The wrong version of Intero is installed for this Emacs package."))) | ||
2221 | (if (intero-version>= (intero-stack-version) '(1 6 1)) | ||
2222 | (intero-copy-compiler-tool-auto-install source-buffer targets buffer) | ||
2223 | (intero-old-auto-install source-buffer targets buffer stack-yaml))))) | ||
2224 | |||
2225 | (defun intero-copy-compiler-tool-auto-install (source-buffer targets buffer) | ||
2226 | "Automatically install Intero appropriately for BUFFER. | ||
2227 | Use the given TARGETS, SOURCE-BUFFER and STACK-YAML." | ||
2228 | (let ((ghc-version (intero-ghc-version-raw))) | ||
2229 | (insert | ||
2230 | (format " | ||
2231 | |||
2232 | Installing intero-%s for GHC %s ... | ||
2233 | |||
2234 | " intero-package-version ghc-version)) | ||
2235 | (redisplay) | ||
2236 | (cl-case | ||
2237 | (let ((default-directory (make-temp-file "intero" t))) | ||
2238 | (intero-call-stack | ||
2239 | nil (current-buffer) t nil "build" | ||
2240 | "--copy-compiler-tool" | ||
2241 | (concat "intero-" intero-package-version) | ||
2242 | "--flag" "haskeline:-terminfo" | ||
2243 | "--resolver" (concat "ghc-" ghc-version) | ||
2244 | "ghc-paths-0.1.0.9" "mtl-2.2.2" "network-2.7.0.0" "random-1.1" "syb-0.7")) | ||
2245 | (0 | ||
2246 | (message "Installed successfully! Starting Intero in a moment ...") | ||
2247 | (bury-buffer buffer) | ||
2248 | (switch-to-buffer source-buffer) | ||
2249 | (intero-start-process-in-buffer buffer targets source-buffer)) | ||
2250 | (1 | ||
2251 | (with-current-buffer buffer (setq-local intero-give-up t)) | ||
2252 | (insert (propertize "Could not install Intero! | ||
2253 | |||
2254 | We don't know why it failed. Please read the above output and try | ||
2255 | installing manually. If that doesn't work, report this as a | ||
2256 | problem. | ||
2257 | |||
2258 | Guess: You might need the \"tinfo\" package, e.g. libtinfo-dev. | ||
2259 | |||
2260 | WHAT TO DO NEXT | ||
2261 | |||
2262 | If you don't want to Intero to try installing itself again for | ||
2263 | this project, just keep this buffer around in your Emacs. | ||
2264 | |||
2265 | If you'd like to try again next time you try use an Intero | ||
2266 | feature, kill this buffer. | ||
2267 | " | ||
2268 | 'face 'compilation-error)) | ||
2269 | nil)))) | ||
2270 | |||
2271 | (defun intero-old-auto-install (source-buffer targets buffer stack-yaml) | ||
2272 | "Automatically install Intero appropriately for BUFFER. | ||
2273 | Use the given TARGETS, SOURCE-BUFFER and STACK-YAML." | ||
2274 | (insert | ||
2275 | " | ||
2276 | |||
2277 | Installing intero-%s automatically ... | ||
2278 | |||
2279 | " intero-package-version) | ||
2280 | (redisplay) | ||
2281 | (cl-case (intero-call-stack | ||
2282 | nil (current-buffer) t stack-yaml | ||
2283 | "build" | ||
2284 | (with-current-buffer buffer | ||
2285 | (let* ((cabal-file (intero-cabal-find-file)) | ||
2286 | (package-name (intero-package-name cabal-file))) | ||
2287 | ;; For local development. Most users'll | ||
2288 | ;; never hit this behaviour. | ||
2289 | (if (string= package-name "intero") | ||
2290 | "intero" | ||
2291 | (concat "intero-" intero-package-version)))) | ||
2292 | "ghc-paths" "syb" | ||
2293 | "--flag" "haskeline:-terminfo") | ||
2294 | (0 | ||
2295 | (message "Installed successfully! Starting Intero in a moment ...") | ||
2296 | (bury-buffer buffer) | ||
2297 | (switch-to-buffer source-buffer) | ||
2298 | (intero-start-process-in-buffer buffer targets source-buffer)) | ||
2299 | (1 | ||
2300 | (with-current-buffer buffer (setq-local intero-give-up t)) | ||
2301 | (insert (propertize "Could not install Intero! | ||
2302 | |||
2303 | We don't know why it failed. Please read the above output and try | ||
2304 | installing manually. If that doesn't work, report this as a | ||
2305 | problem. | ||
2306 | |||
2307 | WHAT TO DO NEXT | ||
2308 | |||
2309 | If you don't want to Intero to try installing itself again for | ||
2310 | this project, just keep this buffer around in your Emacs. | ||
2311 | |||
2312 | If you'd like to try again next time you try use an Intero | ||
2313 | feature, kill this buffer. | ||
2314 | " | ||
2315 | 'face 'compilation-error)) | ||
2316 | nil))) | ||
2317 | |||
2318 | (defun intero-start-process-in-buffer (buffer &optional targets source-buffer stack-yaml) | ||
2319 | "Start an Intero worker in BUFFER. | ||
2320 | Uses the specified TARGETS if supplied. | ||
2321 | Automatically performs initial actions in SOURCE-BUFFER, if specified. | ||
2322 | Uses the default stack config file, or STACK-YAML file if given." | ||
2323 | (if (buffer-local-value 'intero-give-up buffer) | ||
2324 | buffer | ||
2325 | (let* ((process-info (intero-start-piped-process buffer targets stack-yaml)) | ||
2326 | (arguments (plist-get process-info :arguments)) | ||
2327 | (options (plist-get process-info :options)) | ||
2328 | (process (plist-get process-info :process))) | ||
2329 | (set-process-query-on-exit-flag process nil) | ||
2330 | (process-send-string process ":set -fobject-code\n") | ||
2331 | (process-send-string process ":set -fdefer-type-errors\n") | ||
2332 | (process-send-string process ":set -fdiagnostics-color=never\n") | ||
2333 | (process-send-string process ":set prompt \"\\4\"\n") | ||
2334 | (with-current-buffer buffer | ||
2335 | (erase-buffer) | ||
2336 | (when stack-yaml | ||
2337 | (setq intero-stack-yaml stack-yaml)) | ||
2338 | (setq intero-targets targets) | ||
2339 | (setq intero-start-time (current-time)) | ||
2340 | (setq intero-source-buffer source-buffer) | ||
2341 | (setq intero-arguments arguments) | ||
2342 | (setq intero-starting t) | ||
2343 | (setq intero-callbacks | ||
2344 | (list (list (cons source-buffer | ||
2345 | buffer) | ||
2346 | (lambda (buffers msg) | ||
2347 | (let ((source-buffer (car buffers)) | ||
2348 | (process-buffer (cdr buffers))) | ||
2349 | (with-current-buffer process-buffer | ||
2350 | (when (string-match "^Intero-Service-Port: \\([0-9]+\\)\n" msg) | ||
2351 | (setq intero-service-port (string-to-number (match-string 1 msg)))) | ||
2352 | (setq-local intero-starting nil)) | ||
2353 | (when source-buffer | ||
2354 | (with-current-buffer source-buffer | ||
2355 | (when flycheck-mode | ||
2356 | (run-with-timer 0 nil | ||
2357 | 'intero-call-in-buffer | ||
2358 | (current-buffer) | ||
2359 | 'intero-flycheck-buffer))))) | ||
2360 | (message "Booted up intero!")))))) | ||
2361 | (set-process-filter | ||
2362 | process | ||
2363 | (lambda (process string) | ||
2364 | (when intero-debug | ||
2365 | (message "[Intero] <- %s" string)) | ||
2366 | (when (buffer-live-p (process-buffer process)) | ||
2367 | (with-current-buffer (process-buffer process) | ||
2368 | (goto-char (point-max)) | ||
2369 | (insert string) | ||
2370 | (when (and intero-try-with-build | ||
2371 | intero-starting) | ||
2372 | (let ((last-line (buffer-substring-no-properties | ||
2373 | (line-beginning-position) | ||
2374 | (line-end-position)))) | ||
2375 | (if (string-match-p "^Progress" last-line) | ||
2376 | (message "Booting up intero (building dependencies: %s)" | ||
2377 | (downcase | ||
2378 | (or (car (split-string (replace-regexp-in-string | ||
2379 | "\u0008+" "\n" | ||
2380 | last-line) | ||
2381 | "\n" t)) | ||
2382 | "..."))) | ||
2383 | (message "Booting up intero ...")))) | ||
2384 | (intero-read-buffer))))) | ||
2385 | (set-process-sentinel process 'intero-sentinel) | ||
2386 | buffer))) | ||
2387 | |||
2388 | (defun intero-start-piped-process (buffer targets stack-yaml) | ||
2389 | "Start a piped process that we control in BUFFER. | ||
2390 | Uses the specified TARGETS if supplied. | ||
2391 | Uses the default stack config file, or STACK-YAML file if given." | ||
2392 | (let* ((options | ||
2393 | (intero-make-options-list | ||
2394 | (intero-executable-path stack-yaml) | ||
2395 | (or targets | ||
2396 | (let ((package-name (buffer-local-value 'intero-package-name buffer))) | ||
2397 | (unless (equal "" package-name) | ||
2398 | (list package-name)))) | ||
2399 | (not (buffer-local-value 'intero-try-with-build buffer)) | ||
2400 | t ;; pass --no-load to stack | ||
2401 | t ;; pass -ignore-dot-ghci to intero | ||
2402 | stack-yaml ;; let stack choose a default when nil | ||
2403 | )) | ||
2404 | (arguments (cons "ghci" options)) | ||
2405 | (process | ||
2406 | (with-current-buffer buffer | ||
2407 | (when intero-debug | ||
2408 | (message "Intero arguments: %s" (combine-and-quote-strings arguments))) | ||
2409 | (message "Booting up intero ...") | ||
2410 | (apply #'start-file-process intero-stack-executable buffer intero-stack-executable | ||
2411 | arguments)))) | ||
2412 | (list :arguments arguments | ||
2413 | :options options | ||
2414 | :process process))) | ||
2415 | |||
2416 | (defun intero-flycheck-buffer () | ||
2417 | "Run flycheck in the buffer. | ||
2418 | Restarts flycheck in case there was a problem and flycheck is stuck." | ||
2419 | (flycheck-mode -1) | ||
2420 | (flycheck-mode) | ||
2421 | (flycheck-buffer)) | ||
2422 | |||
2423 | (defun intero-make-options-list (with-ghc targets no-build no-load ignore-dot-ghci stack-yaml) | ||
2424 | "Make the stack ghci options list. | ||
2425 | TARGETS are the build targets. When non-nil, NO-BUILD and | ||
2426 | NO-LOAD enable the correspondingly-named stack options. When | ||
2427 | IGNORE-DOT-GHCI is non-nil, it enables the corresponding GHCI | ||
2428 | option. STACK-YAML is the stack config file to use (or stack's | ||
2429 | default when nil)." | ||
2430 | (append (when stack-yaml | ||
2431 | (list "--stack-yaml" stack-yaml)) | ||
2432 | (list "--with-ghc" | ||
2433 | with-ghc | ||
2434 | "--docker-run-args=--interactive=true --tty=false" | ||
2435 | ) | ||
2436 | (when no-build | ||
2437 | (list "--no-build")) | ||
2438 | (when no-load | ||
2439 | (list "--no-load")) | ||
2440 | (when ignore-dot-ghci | ||
2441 | (list "--ghci-options" "-ignore-dot-ghci")) | ||
2442 | (cl-mapcan (lambda (x) (list "--ghci-options" x)) intero-extra-ghc-options) | ||
2443 | targets)) | ||
2444 | |||
2445 | (defun intero-sentinel (process change) | ||
2446 | "Handle when PROCESS reports a CHANGE. | ||
2447 | This is a standard process sentinel function." | ||
2448 | (when (buffer-live-p (process-buffer process)) | ||
2449 | (unless (process-live-p process) | ||
2450 | (let ((buffer (process-buffer process))) | ||
2451 | (if (with-current-buffer buffer intero-deleting) | ||
2452 | (message "Intero process deleted.") | ||
2453 | (if (and (intero-unsatisfied-package-p buffer) | ||
2454 | (not (buffer-local-value 'intero-try-with-build buffer))) | ||
2455 | (progn (with-current-buffer buffer (setq-local intero-try-with-build t)) | ||
2456 | (intero-start-process-in-buffer | ||
2457 | buffer | ||
2458 | (buffer-local-value 'intero-targets buffer) | ||
2459 | (buffer-local-value 'intero-source-buffer buffer))) | ||
2460 | (progn (with-current-buffer buffer (setq-local intero-give-up t)) | ||
2461 | (intero-show-process-problem process change)))))))) | ||
2462 | |||
2463 | (defun intero-unsatisfied-package-p (buffer) | ||
2464 | "Return non-nil if BUFFER contain GHCi's unsatisfied package complaint." | ||
2465 | (with-current-buffer buffer | ||
2466 | (save-excursion | ||
2467 | (goto-char (point-min)) | ||
2468 | (search-forward-regexp "cannot satisfy -package" nil t 1)))) | ||
2469 | |||
2470 | (defun intero-executable-path (stack-yaml) | ||
2471 | "The path for the intero executable." | ||
2472 | (intero-with-temp-buffer | ||
2473 | (cl-case (save-excursion | ||
2474 | (intero-call-stack | ||
2475 | nil (current-buffer) t intero-stack-yaml "path" "--compiler-tools-bin")) | ||
2476 | (0 (replace-regexp-in-string "[\r\n]+$" "/intero" (buffer-string))) | ||
2477 | (1 "intero")))) | ||
2478 | |||
2479 | (defun intero-installed-p () | ||
2480 | "Return non-nil if intero (of the right version) is installed in the stack environment." | ||
2481 | (redisplay) | ||
2482 | (intero-with-temp-buffer | ||
2483 | (if (= 0 (intero-call-stack | ||
2484 | nil t nil intero-stack-yaml | ||
2485 | "exec" | ||
2486 | "--verbosity" "silent" | ||
2487 | "--" | ||
2488 | (intero-executable-path intero-stack-yaml) | ||
2489 | "--version")) | ||
2490 | (progn | ||
2491 | (goto-char (point-min)) | ||
2492 | ;; This skipping comes due to https://github.com/commercialhaskell/intero/pull/216/files | ||
2493 | (when (looking-at "Intero ") | ||
2494 | (goto-char (match-end 0))) | ||
2495 | ;; | ||
2496 | (if (string= (buffer-substring (point) (line-end-position)) | ||
2497 | intero-package-version) | ||
2498 | 'installed | ||
2499 | 'wrong-version)) | ||
2500 | 'not-installed))) | ||
2501 | |||
2502 | (defun intero-show-process-problem (process change) | ||
2503 | "Report to the user that PROCESS reported CHANGE, causing it to end." | ||
2504 | (message "Problem with Intero!") | ||
2505 | (switch-to-buffer (process-buffer process)) | ||
2506 | (goto-char (point-max)) | ||
2507 | (insert "\n---\n\n") | ||
2508 | (insert | ||
2509 | (propertize | ||
2510 | (concat | ||
2511 | "This is the buffer where Emacs talks to intero. It's normally hidden, | ||
2512 | but a problem occcured. | ||
2513 | |||
2514 | TROUBLESHOOTING | ||
2515 | |||
2516 | It may be obvious if there is some text above this message | ||
2517 | indicating a problem. | ||
2518 | |||
2519 | If you do not wish to use Intero for some projects, see | ||
2520 | https://github.com/commercialhaskell/intero#whitelistingblacklisting-projects | ||
2521 | |||
2522 | The process ended. Here is the reason that Emacs gives us: | ||
2523 | |||
2524 | " | ||
2525 | " " change | ||
2526 | "\n" | ||
2527 | "For troubleshooting purposes, here are the arguments used to launch intero: | ||
2528 | |||
2529 | " | ||
2530 | (format " %s %s" | ||
2531 | intero-stack-executable | ||
2532 | (combine-and-quote-strings intero-arguments)) | ||
2533 | |||
2534 | " | ||
2535 | |||
2536 | It's worth checking that the correct stack executable is being | ||
2537 | found on your path, or has been set via | ||
2538 | `intero-stack-executable'. The executable being used now is: | ||
2539 | |||
2540 | " | ||
2541 | (executable-find intero-stack-executable) | ||
2542 | " | ||
2543 | |||
2544 | WHAT TO DO NEXT | ||
2545 | |||
2546 | If you fixed the problem, just kill this buffer, Intero will make | ||
2547 | a fresh one and attempt to start the process automatically as | ||
2548 | soon as you start editing code again. | ||
2549 | |||
2550 | If you are unable to fix the problem, just leave this buffer | ||
2551 | around in Emacs and Intero will not attempt to start the process | ||
2552 | anymore. | ||
2553 | |||
2554 | You can always run M-x intero-restart to make it try again. | ||
2555 | |||
2556 | ") | ||
2557 | 'face 'compilation-error))) | ||
2558 | |||
2559 | (defun intero-read-buffer () | ||
2560 | "In the process buffer, we read what's in it." | ||
2561 | (let ((repeat t)) | ||
2562 | (while repeat | ||
2563 | (setq repeat nil) | ||
2564 | (goto-char (point-min)) | ||
2565 | (when (search-forward "\4" (point-max) t 1) | ||
2566 | (let* ((next-callback (pop intero-callbacks)) | ||
2567 | (state (nth 0 next-callback)) | ||
2568 | (func (nth 1 next-callback))) | ||
2569 | (let ((string (intero-strip-carriage-returns (buffer-substring (point-min) (1- (point)))))) | ||
2570 | (if next-callback | ||
2571 | (progn (intero-with-temp-buffer | ||
2572 | (funcall func state string)) | ||
2573 | (setq repeat t)) | ||
2574 | (when intero-debug | ||
2575 | (intero--warn "Received output but no callback in `intero-callbacks': %S" | ||
2576 | string))))) | ||
2577 | (delete-region (point-min) (point)))))) | ||
2578 | |||
2579 | (defun intero-strip-carriage-returns (string) | ||
2580 | "Strip the \\r from Windows \\r\\n line endings in STRING." | ||
2581 | (replace-regexp-in-string "\r" "" string)) | ||
2582 | |||
2583 | (defun intero-get-buffer-create (worker) | ||
2584 | "Get or create the stack buffer for WORKER. | ||
2585 | Uses the directory of the current buffer for context." | ||
2586 | (let* ((root (intero-extend-path-by-buffer-host (intero-project-root))) | ||
2587 | (cabal-file (intero-cabal-find-file)) | ||
2588 | (package-name (if cabal-file | ||
2589 | (intero-package-name cabal-file) | ||
2590 | "")) | ||
2591 | (initial-buffer (current-buffer)) | ||
2592 | (buffer-name (intero-buffer-name worker)) | ||
2593 | (default-directory (if cabal-file | ||
2594 | (file-name-directory cabal-file) | ||
2595 | root))) | ||
2596 | (with-current-buffer | ||
2597 | (get-buffer-create buffer-name) | ||
2598 | (intero-inherit-local-variables initial-buffer) | ||
2599 | (setq intero-package-name package-name) | ||
2600 | (cd default-directory) | ||
2601 | (current-buffer)))) | ||
2602 | |||
2603 | (defun intero-gave-up (worker) | ||
2604 | "Return non-nil if starting WORKER or installing intero failed." | ||
2605 | (and (intero-buffer-p worker) | ||
2606 | (let ((buffer (get-buffer (intero-buffer-name worker)))) | ||
2607 | (buffer-local-value 'intero-give-up buffer)))) | ||
2608 | |||
2609 | (defun intero-buffer-p (worker) | ||
2610 | "Return non-nil if a buffer exists for WORKER." | ||
2611 | (get-buffer (intero-buffer-name worker))) | ||
2612 | |||
2613 | (defun intero-buffer-name (worker) | ||
2614 | "For a given WORKER, create a buffer name." | ||
2615 | (let* ((root (intero-project-root)) | ||
2616 | (package-name (intero-package-name))) | ||
2617 | (concat " intero:" | ||
2618 | (format "%s" worker) | ||
2619 | ":" | ||
2620 | package-name | ||
2621 | " " | ||
2622 | root))) | ||
2623 | |||
2624 | (defun intero-project-root () | ||
2625 | "Get the current stack config directory. | ||
2626 | This is the directory where the file specified in | ||
2627 | `intero-stack-yaml' is located, or if nil then the directory | ||
2628 | where stack.yaml is placed for this project, or the global one if | ||
2629 | no such project-specific config exists." | ||
2630 | (if intero-project-root | ||
2631 | intero-project-root | ||
2632 | (let ((stack-yaml intero-stack-yaml)) | ||
2633 | (setq intero-project-root | ||
2634 | (intero-with-temp-buffer | ||
2635 | (cl-case (save-excursion | ||
2636 | (intero-call-stack nil (current-buffer) nil stack-yaml | ||
2637 | "path" | ||
2638 | "--project-root" | ||
2639 | "--verbosity" "silent")) | ||
2640 | (0 (buffer-substring (line-beginning-position) (line-end-position))) | ||
2641 | (t (intero--warn "Couldn't get the Stack project root. | ||
2642 | |||
2643 | This can be caused by a syntax error in your stack.yaml file. Check that out. | ||
2644 | |||
2645 | If you do not wish to use Intero for some projects, see | ||
2646 | https://github.com/commercialhaskell/intero#whitelistingblacklisting-projects | ||
2647 | |||
2648 | Otherwise, please report this as a bug! | ||
2649 | |||
2650 | For debugging purposes, try running the following in your terminal: | ||
2651 | |||
2652 | %s path --project-root" intero-stack-executable) | ||
2653 | nil))))))) | ||
2654 | |||
2655 | (defun intero-ghc-version () | ||
2656 | "Get the GHC version used by the project, calls only once per backend." | ||
2657 | (with-current-buffer (intero-buffer 'backend) | ||
2658 | (or intero-ghc-version | ||
2659 | (setq intero-ghc-version | ||
2660 | (intero-ghc-version-raw))))) | ||
2661 | |||
2662 | (defun intero-ghc-version-raw () | ||
2663 | "Get the GHC version used by the project." | ||
2664 | (intero-with-temp-buffer | ||
2665 | (cl-case (save-excursion | ||
2666 | (intero-call-stack | ||
2667 | nil (current-buffer) t intero-stack-yaml | ||
2668 | "ghc" "--" "--numeric-version")) | ||
2669 | (0 | ||
2670 | (buffer-substring (line-beginning-position) (line-end-position))) | ||
2671 | (1 nil)))) | ||
2672 | |||
2673 | (defun intero-version>= (new0 old0) | ||
2674 | "Is the version NEW >= OLD?" | ||
2675 | (or (and (null new0) (null old0)) | ||
2676 | (let ((new (or new0 (list 0))) | ||
2677 | (old (or old0 (list 0)))) | ||
2678 | (or (> (car new) | ||
2679 | (car old)) | ||
2680 | (and (= (car new) | ||
2681 | (car old)) | ||
2682 | (intero-version>= (cdr new) | ||
2683 | (cdr old))))))) | ||
2684 | |||
2685 | (defun intero-stack-version () | ||
2686 | "Get the version components of stack." | ||
2687 | (let* ((str (intero-stack-version-raw)) | ||
2688 | (parts (mapcar #'string-to-number (split-string str "\\.")))) | ||
2689 | parts)) | ||
2690 | |||
2691 | (defun intero-stack-version-raw () | ||
2692 | "Get the Stack version in PATH." | ||
2693 | (intero-with-temp-buffer | ||
2694 | (cl-case (save-excursion | ||
2695 | (intero-call-stack | ||
2696 | nil (current-buffer) t intero-stack-yaml "--numeric-version")) | ||
2697 | (0 | ||
2698 | (buffer-substring (line-beginning-position) (line-end-position))) | ||
2699 | (1 nil)))) | ||
2700 | |||
2701 | (defun intero-get-targets () | ||
2702 | "Get all available targets." | ||
2703 | (with-current-buffer (intero-buffer 'backend) | ||
2704 | (intero-with-temp-buffer | ||
2705 | (cl-case (intero-call-stack nil (current-buffer) t | ||
2706 | intero-stack-yaml | ||
2707 | "ide" "targets") | ||
2708 | (0 | ||
2709 | (cl-remove-if-not | ||
2710 | (lambda (line) | ||
2711 | (string-match-p "^[A-Za-z0-9-:_]+$" line)) | ||
2712 | (split-string (buffer-string) "[\r\n]" t))) | ||
2713 | (1 nil))))) | ||
2714 | |||
2715 | (defun intero-package-name (&optional cabal-file) | ||
2716 | "Get the current package name from a nearby .cabal file. | ||
2717 | If there is none, return an empty string. If specified, use | ||
2718 | CABAL-FILE rather than trying to locate one." | ||
2719 | (or intero-package-name | ||
2720 | (setq intero-package-name | ||
2721 | (let ((cabal-file (or cabal-file | ||
2722 | (intero-cabal-find-file)))) | ||
2723 | (if cabal-file | ||
2724 | (replace-regexp-in-string | ||
2725 | ".cabal$" "" | ||
2726 | (file-name-nondirectory cabal-file)) | ||
2727 | ""))))) | ||
2728 | |||
2729 | (defun intero-cabal-find-file (&optional dir) | ||
2730 | "Search for package description file upwards starting from DIR. | ||
2731 | If DIR is nil, `default-directory' is used as starting point for | ||
2732 | directory traversal. Upward traversal is aborted if file owner | ||
2733 | changes. Uses `intero-cabal-find-pkg-desc' internally." | ||
2734 | (let ((use-dir (or dir default-directory))) | ||
2735 | (while (and use-dir (not (file-directory-p use-dir))) | ||
2736 | (setq use-dir (file-name-directory (directory-file-name use-dir)))) | ||
2737 | (when use-dir | ||
2738 | (catch 'found | ||
2739 | (let ((user (nth 2 (file-attributes use-dir))) | ||
2740 | ;; Abbreviate, so as to stop when we cross ~/. | ||
2741 | (root (abbreviate-file-name use-dir))) | ||
2742 | ;; traverse current dir up to root as long as file owner doesn't change | ||
2743 | (while (and root (equal user (nth 2 (file-attributes root)))) | ||
2744 | (let ((cabal-file (intero-cabal-find-pkg-desc root))) | ||
2745 | (when cabal-file | ||
2746 | (throw 'found cabal-file))) | ||
2747 | |||
2748 | (let ((proot (file-name-directory (directory-file-name root)))) | ||
2749 | (if (equal proot root) ;; fix-point reached? | ||
2750 | (throw 'found nil) | ||
2751 | (setq root proot)))) | ||
2752 | nil))))) | ||
2753 | |||
2754 | (defun intero-cabal-find-pkg-desc (dir &optional allow-multiple) | ||
2755 | "Find a package description file in the directory DIR. | ||
2756 | Returns nil if none or multiple \".cabal\" files were found. If | ||
2757 | ALLOW-MULTIPLE is non nil, in case of multiple \".cabal\" files, | ||
2758 | a list is returned instead of failing with a nil result." | ||
2759 | ;; This is basically a port of Cabal's | ||
2760 | ;; Distribution.Simple.Utils.findPackageDesc function | ||
2761 | ;; http://hackage.haskell.org/packages/archive/Cabal/1.16.0.3/doc/html/Distribution-Simple-Utils.html | ||
2762 | ;; but without the exception throwing. | ||
2763 | (let* ((cabal-files | ||
2764 | (cl-remove-if (lambda (path) | ||
2765 | (or (file-directory-p path) | ||
2766 | (not (file-exists-p path)))) | ||
2767 | (directory-files dir t ".\\.cabal\\'" t)))) | ||
2768 | (cond | ||
2769 | ((= (length cabal-files) 1) (car cabal-files)) ;; exactly one candidate found | ||
2770 | (allow-multiple cabal-files) ;; pass-thru multiple candidates | ||
2771 | (t nil)))) | ||
2772 | |||
2773 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
2774 | ;; Multiselection | ||
2775 | |||
2776 | (defvar intero-multiswitch-keymap | ||
2777 | (let ((map (copy-keymap widget-keymap))) | ||
2778 | (define-key map (kbd "C-c C-c") 'exit-recursive-edit) | ||
2779 | (define-key map (kbd "C-c C-k") 'abort-recursive-edit) | ||
2780 | (define-key map (kbd "C-g") 'abort-recursive-edit) | ||
2781 | map)) | ||
2782 | |||
2783 | (defun intero-multiswitch (title options) | ||
2784 | "Displaying TITLE, read multiple flags from a list of OPTIONS. | ||
2785 | Each option is a plist of (:key :default :title) wherein: | ||
2786 | |||
2787 | :key should be something comparable with EQUAL | ||
2788 | :title should be a string | ||
2789 | :default (boolean) specifies the default checkedness" | ||
2790 | (let ((available-width (window-total-width))) | ||
2791 | (save-window-excursion | ||
2792 | (intero-with-temp-buffer | ||
2793 | (rename-buffer (generate-new-buffer-name "multiswitch")) | ||
2794 | (widget-insert (concat title "\n\n")) | ||
2795 | (widget-insert (propertize "Select options with RET, hit " 'face 'font-lock-comment-face)) | ||
2796 | (widget-create 'push-button :notify | ||
2797 | (lambda (&rest ignore) | ||
2798 | (exit-recursive-edit)) | ||
2799 | "C-c C-c") | ||
2800 | (widget-insert (propertize " to apply these choices, or hit " 'face 'font-lock-comment-face)) | ||
2801 | (widget-create 'push-button :notify | ||
2802 | (lambda (&rest ignore) | ||
2803 | (abort-recursive-edit)) | ||
2804 | "C-c C-k") | ||
2805 | (widget-insert (propertize " to cancel.\n\n" 'face 'font-lock-comment-face)) | ||
2806 | (let* ((me (current-buffer)) | ||
2807 | (choices (mapcar (lambda (option) | ||
2808 | (append option (list :value (plist-get option :default)))) | ||
2809 | options))) | ||
2810 | (cl-loop for option in choices | ||
2811 | do (widget-create | ||
2812 | 'toggle | ||
2813 | :notify (lambda (widget &rest ignore) | ||
2814 | (setq choices | ||
2815 | (mapcar (lambda (choice) | ||
2816 | (if (equal (plist-get choice :key) | ||
2817 | (plist-get (cdr widget) :key)) | ||
2818 | (plist-put choice :value (plist-get (cdr widget) :value)) | ||
2819 | choice)) | ||
2820 | choices))) | ||
2821 | :on (concat "[x] " (plist-get option :title)) | ||
2822 | :off (concat "[ ] " (plist-get option :title)) | ||
2823 | :value (plist-get option :default) | ||
2824 | :key (plist-get option :key))) | ||
2825 | (let ((lines (line-number-at-pos))) | ||
2826 | (select-window (split-window-below)) | ||
2827 | (switch-to-buffer me) | ||
2828 | (goto-char (point-min))) | ||
2829 | (use-local-map intero-multiswitch-keymap) | ||
2830 | (widget-setup) | ||
2831 | (recursive-edit) | ||
2832 | (kill-buffer me) | ||
2833 | (mapcar (lambda (choice) | ||
2834 | (plist-get choice :key)) | ||
2835 | (cl-remove-if-not (lambda (choice) | ||
2836 | (plist-get choice :value)) | ||
2837 | choices))))))) | ||
2838 | |||
2839 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
2840 | ;; Hoogle | ||
2841 | |||
2842 | (defun intero-hoogle-blocking-query (query) | ||
2843 | "Make a request of QUERY using the local hoogle server. | ||
2844 | If running, otherwise returns nil. | ||
2845 | |||
2846 | It is the responsibility of the caller to make sure the server is | ||
2847 | running; the user might not want to start the server | ||
2848 | automatically." | ||
2849 | (let ((buffer (intero-hoogle-get-buffer))) | ||
2850 | (when buffer | ||
2851 | (let ((url (intero-hoogle-url buffer query))) | ||
2852 | (with-current-buffer (url-retrieve-synchronously url t) | ||
2853 | (search-forward "\n\n" nil t 1) | ||
2854 | (json-read-from-string | ||
2855 | (buffer-substring (line-beginning-position) | ||
2856 | (line-end-position)))))))) | ||
2857 | |||
2858 | (defun intero-hoogle-url (buffer query) | ||
2859 | "Via hoogle server BUFFER make the HTTP URL for QUERY." | ||
2860 | (format "http://127.0.0.1:%d/?hoogle=%s&mode=json" | ||
2861 | (buffer-local-value 'intero-hoogle-port buffer) | ||
2862 | (url-encode-url query))) | ||
2863 | |||
2864 | (defun intero-hoogle-get-worker-create () | ||
2865 | "Get or create the hoogle worker." | ||
2866 | (let* ((buffer (intero-hoogle-get-buffer-create))) | ||
2867 | (if (get-buffer-process buffer) | ||
2868 | buffer | ||
2869 | (intero-start-hoogle-process-in-buffer buffer)))) | ||
2870 | |||
2871 | (defun intero-start-hoogle-process-in-buffer (buffer) | ||
2872 | "Start the process in BUFFER, returning BUFFER." | ||
2873 | (let* ((port (intero-free-port)) | ||
2874 | (process (with-current-buffer buffer | ||
2875 | (message "Booting up hoogle ...") | ||
2876 | (setq intero-hoogle-port port) | ||
2877 | (start-process "hoogle" | ||
2878 | buffer | ||
2879 | intero-stack-executable | ||
2880 | "hoogle" | ||
2881 | "server" | ||
2882 | "--no-setup" | ||
2883 | "--" | ||
2884 | "--local" | ||
2885 | "--port" | ||
2886 | (number-to-string port))))) | ||
2887 | (set-process-query-on-exit-flag process nil) | ||
2888 | (set-process-sentinel process 'intero-hoogle-sentinel) | ||
2889 | buffer)) | ||
2890 | |||
2891 | (defun intero-free-port () | ||
2892 | "Get the next free port to use." | ||
2893 | (let ((proc (make-network-process | ||
2894 | :name "port-check" | ||
2895 | :family 'ipv4 | ||
2896 | :host "127.0.0.1" | ||
2897 | :service t | ||
2898 | :server t))) | ||
2899 | (delete-process proc) | ||
2900 | (process-contact proc :service))) | ||
2901 | |||
2902 | (defun intero-hoogle-sentinel (process change) | ||
2903 | "For the hoogle PROCESS there is a CHANGE to handle." | ||
2904 | (message "Hoogle sentinel: %S %S" process change)) | ||
2905 | |||
2906 | (defun intero-hoogle-get-buffer-create () | ||
2907 | "Get or create the Hoogle buffer for the current stack project." | ||
2908 | (let* ((root (intero-project-root)) | ||
2909 | (buffer-name (intero-hoogle-buffer-name root)) | ||
2910 | (buf (get-buffer buffer-name)) | ||
2911 | (initial-buffer (current-buffer)) | ||
2912 | (default-directory root)) | ||
2913 | (if buf | ||
2914 | buf | ||
2915 | (with-current-buffer (get-buffer-create buffer-name) | ||
2916 | (intero-inherit-local-variables initial-buffer) | ||
2917 | (cd default-directory) | ||
2918 | (current-buffer))))) | ||
2919 | |||
2920 | (defun intero-hoogle-get-buffer () | ||
2921 | "Get the Hoogle buffer for the current stack project." | ||
2922 | (let* ((root (intero-project-root)) | ||
2923 | (buffer-name (intero-hoogle-buffer-name root))) | ||
2924 | (get-buffer buffer-name))) | ||
2925 | |||
2926 | (defun intero-hoogle-buffer-name (root) | ||
2927 | "For a given worker, create a buffer name using ROOT." | ||
2928 | (concat "*Hoogle:" root "*")) | ||
2929 | |||
2930 | (defun intero-hoogle-ready-p () | ||
2931 | "Is hoogle ready to be started?" | ||
2932 | (intero-with-temp-buffer | ||
2933 | (cl-case (intero-call-stack nil (current-buffer) t intero-stack-yaml | ||
2934 | "hoogle" "--no-setup" "--verbosity" "silent") | ||
2935 | (0 t)))) | ||
2936 | |||
2937 | (defun intero-hoogle-supported-p () | ||
2938 | "Is the stack hoogle command supported?" | ||
2939 | (intero-with-temp-buffer | ||
2940 | (cl-case (intero-call-stack nil (current-buffer) t | ||
2941 | intero-stack-yaml | ||
2942 | "hoogle" "--help") | ||
2943 | (0 t)))) | ||
2944 | |||
2945 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
2946 | ;; Collecting information from compiler messages | ||
2947 | |||
2948 | (defun intero-collect-compiler-messages (msgs) | ||
2949 | "Collect information from compiler MSGS. | ||
2950 | |||
2951 | This may update in-place the MSGS objects to hint that | ||
2952 | suggestions are available." | ||
2953 | (setq intero-suggestions nil) | ||
2954 | (let ((extension-regex (concat " " (regexp-opt (intero-extensions) t) "\\>")) | ||
2955 | (quoted-symbol-regex "[‘`‛]\\([^ ]+\\)['’]")) | ||
2956 | (cl-loop | ||
2957 | for msg in msgs | ||
2958 | do (let ((text (flycheck-error-message msg)) | ||
2959 | (note nil)) | ||
2960 | ;; Messages of this format: | ||
2961 | ;; | ||
2962 | ;; • Constructor ‘Assert’ does not have the required strict field(s): assertName, | ||
2963 | ;; assertDoc, assertExpression, | ||
2964 | ;; assertSection | ||
2965 | (let ((start 0)) | ||
2966 | (while (or | ||
2967 | (string-match "does not have the required strict field.*?:[\n\t\r ]" text start) | ||
2968 | (string-match "Fields of .*? not initialised:[\n\t\r ]" text start)) | ||
2969 | (let* ((match-end (match-end 0)) | ||
2970 | (fields | ||
2971 | (let ((reached-end nil)) | ||
2972 | (mapcar | ||
2973 | (lambda (field) | ||
2974 | (with-temp-buffer | ||
2975 | (insert field) | ||
2976 | (goto-char (point-min)) | ||
2977 | (intero-ident-at-point))) | ||
2978 | (cl-remove-if | ||
2979 | (lambda (field) | ||
2980 | (or reached-end | ||
2981 | (when (string-match "[\r\n]" field) | ||
2982 | (setq reached-end t) | ||
2983 | nil))) | ||
2984 | (split-string | ||
2985 | (substring text match-end) | ||
2986 | "[\n\t\r ]*,[\n\t\r ]*" t)))))) | ||
2987 | (setq note t) | ||
2988 | (add-to-list | ||
2989 | 'intero-suggestions | ||
2990 | (list :type 'add-missing-fields | ||
2991 | :fields fields | ||
2992 | :line (flycheck-error-line msg) | ||
2993 | :column (flycheck-error-column msg))) | ||
2994 | (setq start (min (length text) (1+ match-end)))))) | ||
2995 | |||
2996 | ;; Messages of this format: | ||
2997 | ;; | ||
2998 | ;; Can't make a derived instance of ‘Functor X’: | ||
2999 | ;; You need DeriveFunctor to derive an instance for this class | ||
3000 | ;; Try GeneralizedNewtypeDeriving for GHC's newtype-deriving extension | ||
3001 | ;; In the newtype declaration for ‘X’ | ||
3002 | (let ((start 0)) | ||
3003 | (while (let ((case-fold-search nil)) | ||
3004 | (string-match extension-regex text start)) | ||
3005 | (setq note t) | ||
3006 | (add-to-list 'intero-suggestions | ||
3007 | (list :type 'add-extension | ||
3008 | :extension (match-string 1 text))) | ||
3009 | (setq start (min (length text) (1+ (match-end 0)))))) | ||
3010 | ;; Messages of this format: | ||
3011 | ;; | ||
3012 | ;; Could not find module ‘Language.Haskell.TH’ | ||
3013 | ;; It is a member of the hidden package ‘template-haskell’. | ||
3014 | ;; Use -v to see a list of the files searched for.... | ||
3015 | (let ((start 0)) | ||
3016 | (while (string-match "It is a member of the hidden package [‘`‛]\\([^ ]+\\)['’]" text start) | ||
3017 | (setq note t) | ||
3018 | (add-to-list 'intero-suggestions | ||
3019 | (list :type 'add-package | ||
3020 | :package (match-string 1 text))) | ||
3021 | (setq start (min (length text) (1+ (match-end 0)))))) | ||
3022 | ;; Messages of this format: | ||
3023 | ;; Expected type: String | ||
3024 | ;; Actual type: Data.Text.Internal.Builder.Builder | ||
3025 | (let ((start 0)) | ||
3026 | (while (or (string-match | ||
3027 | "Expected type: String" text start) | ||
3028 | (string-match | ||
3029 | "Actual type: String" text start) | ||
3030 | (string-match | ||
3031 | "Actual type: \\[Char\\]" text start) | ||
3032 | (string-match | ||
3033 | "Expected type: \\[Char\\]" text start)) | ||
3034 | (setq note t) | ||
3035 | (add-to-list 'intero-suggestions | ||
3036 | (list :type 'add-extension | ||
3037 | :extension "OverloadedStrings")) | ||
3038 | (setq start (min (length text) (1+ (match-end 0)))))) | ||
3039 | ;; Messages of this format: | ||
3040 | ;; | ||
3041 | ;; Defaulting the following constraint(s) to type ‘Integer’ | ||
3042 | ;; (Num a0) arising from the literal ‘1’ | ||
3043 | ;; In the expression: 2 | ||
3044 | ;; In an equation for ‘x'’: x' = 2 | ||
3045 | (let ((start 0)) | ||
3046 | (while (string-match | ||
3047 | " Defaulting the following constraint" text start) | ||
3048 | (setq note t) | ||
3049 | (add-to-list 'intero-suggestions | ||
3050 | (list :type 'add-ghc-option | ||
3051 | :option "-fno-warn-type-defaults")) | ||
3052 | (setq start (min (length text) (1+ (match-end 0)))))) | ||
3053 | ;; Messages of this format: | ||
3054 | ;; | ||
3055 | ;; This binding for ‘x’ shadows the existing binding | ||
3056 | (let ((start 0)) | ||
3057 | (while (string-match | ||
3058 | " This binding for ‘\\(.*\\)’ shadows the existing binding" text start) | ||
3059 | (setq note t) | ||
3060 | (add-to-list 'intero-suggestions | ||
3061 | (list :type 'add-ghc-option | ||
3062 | :option "-fno-warn-name-shadowing")) | ||
3063 | (setq start (min (length text) (1+ (match-end 0)))))) | ||
3064 | ;; Messages of this format: | ||
3065 | ;; Perhaps you want to add ‘foo’ to the import list | ||
3066 | ;; in the import of ‘Blah’ | ||
3067 | ;; (/path/to/thing:19 | ||
3068 | (when (string-match "Perhaps you want to add [‘`‛]\\([^ ]+\\)['’][\n ]+to[\n ]+the[\n ]+import[\n ]+list[\n ]+in[\n ]+the[\n ]+import[\n ]+of[\n ]+[‘`‛]\\([^ ]+\\)['’][\n ]+(\\([^ ]+\\):(?\\([0-9]+\\)[:,]" | ||
3069 | text) | ||
3070 | (let ((ident (match-string 1 text)) | ||
3071 | (module (match-string 2 text)) | ||
3072 | (file (match-string 3 text)) | ||
3073 | (line (string-to-number (match-string 4 text)))) | ||
3074 | (setq note t) | ||
3075 | (add-to-list 'intero-suggestions | ||
3076 | (list :type 'add-to-import | ||
3077 | :module module | ||
3078 | :ident ident | ||
3079 | :line line)))) | ||
3080 | ;; Messages of this format: | ||
3081 | ;; | ||
3082 | ;; The import of ‘Control.Monad’ is redundant | ||
3083 | ;; except perhaps to import instances from ‘Control.Monad’ | ||
3084 | ;; To import instances alone, use: import Control.Monad()... (intero) | ||
3085 | (when (string-match | ||
3086 | " The \\(qualified \\)?import of[ ][‘`‛]\\([^ ]+\\)['’] is redundant" | ||
3087 | text) | ||
3088 | (setq note t) | ||
3089 | (add-to-list 'intero-suggestions | ||
3090 | (list :type 'remove-import | ||
3091 | :module (match-string 2 text) | ||
3092 | :line (flycheck-error-line msg)))) | ||
3093 | ;; Messages of this format: | ||
3094 | ;; | ||
3095 | ;; Not in scope: ‘putStrn’ | ||
3096 | ;; Perhaps you meant one of these: | ||
3097 | ;; ‘putStr’ (imported from Prelude), | ||
3098 | ;; ‘putStrLn’ (imported from Prelude) | ||
3099 | ;; | ||
3100 | ;; Or this format: | ||
3101 | ;; | ||
3102 | ;; error: | ||
3103 | ;; • Variable not in scope: lopSetup :: [Statement Exp'] | ||
3104 | ;; • Perhaps you meant ‘loopSetup’ (line 437) | ||
3105 | (when (string-match | ||
3106 | "[Nn]ot in scope: \\(data constructor \\|type constructor or class \\)?[‘`‛]?\\([^'’ ]+\\).*\n.*Perhaps you meant" | ||
3107 | text) | ||
3108 | (let ((typo (match-string 2 text)) | ||
3109 | (start (min (length text) (1+ (match-end 0))))) | ||
3110 | (while (string-match quoted-symbol-regex text start) | ||
3111 | (setq note t) | ||
3112 | (add-to-list 'intero-suggestions | ||
3113 | (list :type 'fix-typo | ||
3114 | :typo typo | ||
3115 | :replacement (match-string 1 text) | ||
3116 | :column (flycheck-error-column msg) | ||
3117 | :line (flycheck-error-line msg))) | ||
3118 | (setq start (min (length text) (1+ (match-end 0))))))) | ||
3119 | ;; Messages of this format: | ||
3120 | ;; | ||
3121 | ;; Top-level binding with no type signature: main :: IO () | ||
3122 | (when (string-match | ||
3123 | "Top-level binding with no type signature:" | ||
3124 | text) | ||
3125 | (let ((start (min (length text) (match-end 0)))) | ||
3126 | (setq note t) | ||
3127 | (add-to-list 'intero-suggestions | ||
3128 | (list :type 'add-signature | ||
3129 | :signature (mapconcat #'identity (split-string (substring text start)) " ") | ||
3130 | :line (flycheck-error-line msg))))) | ||
3131 | ;; Messages of this format: | ||
3132 | (when (string-match "The import of [‘`‛]\\(.+?\\)[’`'][\n ]+from[\n ]+module[\n ]+[‘`‛]\\(.+?\\)[’`'][\n ]+is[\n ]+redundant" text) | ||
3133 | (let ((module (match-string 2 text)) | ||
3134 | (idents (split-string (match-string 1 text) "," t "[ \n]+"))) | ||
3135 | (setq note t) | ||
3136 | (add-to-list 'intero-suggestions | ||
3137 | (list :type 'redundant-import-item | ||
3138 | :idents idents | ||
3139 | :line (flycheck-error-line msg) | ||
3140 | :module module)))) | ||
3141 | ;; Messages of this format: | ||
3142 | ;; | ||
3143 | ;; Redundant constraints: (Arith var, Bitwise var) | ||
3144 | ;; Or | ||
3145 | ;; Redundant constraint: Arith var | ||
3146 | ;; Or | ||
3147 | ;; Redundant constraints: (Arith var, | ||
3148 | ;; Bitwise var, | ||
3149 | ;; Functor var, | ||
3150 | ;; Applicative var, | ||
3151 | ;; Monad var) | ||
3152 | (when (string-match "Redundant constraints?: " text) | ||
3153 | (let* ((redundant-start (match-end 0)) | ||
3154 | (parts (intero-with-temp-buffer | ||
3155 | (insert (substring text redundant-start)) | ||
3156 | (goto-char (point-min)) | ||
3157 | ;; A lone unparenthesized constraint might | ||
3158 | ;; be multiple sexps. | ||
3159 | (while (not (eq (point) (point-at-eol))) | ||
3160 | (forward-sexp)) | ||
3161 | (let ((redundant-end (point))) | ||
3162 | (search-forward-regexp ".*\n.*In the ") | ||
3163 | (cons (buffer-substring (point-min) redundant-end) | ||
3164 | (buffer-substring (match-end 0) (point-max))))))) | ||
3165 | (setq note t) | ||
3166 | (add-to-list | ||
3167 | 'intero-suggestions | ||
3168 | (let ((rest (cdr parts)) | ||
3169 | (redundant (let ((raw (car parts))) | ||
3170 | (if (eq (string-to-char raw) ?\() | ||
3171 | (substring raw 1 (1- (length raw))) | ||
3172 | raw)))) | ||
3173 | (list :type 'redundant-constraint | ||
3174 | :redundancies (mapcar #'string-trim | ||
3175 | (intero-parse-comma-list redundant)) | ||
3176 | :signature (mapconcat #'identity (split-string rest) " ") | ||
3177 | :line (flycheck-error-line msg)))))) | ||
3178 | ;; Add a note if we found a suggestion to make | ||
3179 | (when note | ||
3180 | (setf (flycheck-error-message msg) | ||
3181 | (concat text "\n\n" | ||
3182 | (propertize | ||
3183 | (substitute-command-keys | ||
3184 | "(Hit `\\[intero-apply-suggestions]' in the Haskell buffer to apply suggestions)") | ||
3185 | 'face 'font-lock-warning-face))))))) | ||
3186 | (setq intero-lighter | ||
3187 | (if (null intero-suggestions) | ||
3188 | " Intero" | ||
3189 | (format " Intero:%d" (length intero-suggestions))))) | ||
3190 | |||
3191 | (defun intero-extensions () | ||
3192 | "Get extensions for the current project's GHC." | ||
3193 | (with-current-buffer (intero-buffer 'backend) | ||
3194 | (or intero-extensions | ||
3195 | (setq intero-extensions | ||
3196 | (cl-remove-if-not | ||
3197 | (lambda (str) (let ((case-fold-search nil)) | ||
3198 | (string-match "^[A-Z][A-Za-z0-9]+$" str))) | ||
3199 | (split-string | ||
3200 | (shell-command-to-string | ||
3201 | (concat intero-stack-executable | ||
3202 | (if intero-stack-yaml | ||
3203 | (concat "--stack-yaml " intero-stack-yaml) | ||
3204 | "") | ||
3205 | " exec --verbosity silent -- ghc --supported-extensions")))))))) | ||
3206 | |||
3207 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
3208 | ;; Auto actions | ||
3209 | |||
3210 | (defun intero-parse-comma-list (text) | ||
3211 | "Parse a list of comma-separated expressions in TEXT." | ||
3212 | (cl-loop for tok in (split-string text "[[:space:]\n]*,[[:space:]\n]*") | ||
3213 | with acc = nil | ||
3214 | append (let* ((clist (string-to-list tok)) | ||
3215 | (num-open (-count (lambda (c) (or (eq c ?\() (eq c ?\[))) | ||
3216 | clist)) | ||
3217 | (num-close (-count (lambda (c) (or (eq c ?\)) (eq c ?\]))) | ||
3218 | clist))) | ||
3219 | (cond | ||
3220 | ((> num-open num-close) (progn (add-to-list 'acc tok) nil)) | ||
3221 | ((> num-close num-open) (let ((tmp (reverse (cons tok acc)))) | ||
3222 | (setq acc nil) | ||
3223 | (list (string-join tmp ", ")))) | ||
3224 | (t (list tok)))))) | ||
3225 | |||
3226 | (defun intero-apply-suggestions () | ||
3227 | "Prompt and apply the suggestions." | ||
3228 | (interactive) | ||
3229 | (if (null intero-suggestions) | ||
3230 | (message "No suggestions to apply") | ||
3231 | (let ((to-apply | ||
3232 | (intero-multiswitch | ||
3233 | (format "There are %d suggestions to apply:" (length intero-suggestions)) | ||
3234 | (cl-remove-if-not | ||
3235 | #'identity | ||
3236 | (mapcar | ||
3237 | (lambda (suggestion) | ||
3238 | (cl-case (plist-get suggestion :type) | ||
3239 | (add-to-import | ||
3240 | (list :key suggestion | ||
3241 | :title (format "Add ‘%s’ to import of ‘%s’" | ||
3242 | (plist-get suggestion :ident) | ||
3243 | (plist-get suggestion :module)) | ||
3244 | :default t)) | ||
3245 | (add-missing-fields | ||
3246 | (list :key suggestion | ||
3247 | :default t | ||
3248 | :title | ||
3249 | (format "Add missing fields to record: %s" | ||
3250 | (mapconcat (lambda (ident) | ||
3251 | (concat "‘" ident "’")) | ||
3252 | (plist-get suggestion :fields) | ||
3253 | ", ")))) | ||
3254 | (redundant-import-item | ||
3255 | (list :key suggestion | ||
3256 | :title | ||
3257 | (format "Remove redundant imports %s from import of ‘%s’" | ||
3258 | (mapconcat (lambda (ident) | ||
3259 | (concat "‘" ident "’")) | ||
3260 | (plist-get suggestion :idents) ", ") | ||
3261 | (plist-get suggestion :module)) | ||
3262 | :default t)) | ||
3263 | (add-extension | ||
3264 | (list :key suggestion | ||
3265 | :title (concat "Add {-# LANGUAGE " | ||
3266 | (plist-get suggestion :extension) | ||
3267 | " #-}") | ||
3268 | :default (not (string= "OverloadedStrings" (plist-get suggestion :extension))))) | ||
3269 | (add-ghc-option | ||
3270 | (list :key suggestion | ||
3271 | :title (concat "Add {-# OPTIONS_GHC " | ||
3272 | (plist-get suggestion :option) | ||
3273 | " #-}") | ||
3274 | :default (not | ||
3275 | (string= | ||
3276 | (plist-get suggestion :option) | ||
3277 | "-fno-warn-name-shadowing")))) | ||
3278 | (add-package | ||
3279 | (list :key suggestion | ||
3280 | :title (concat "Enable package: " (plist-get suggestion :package)) | ||
3281 | :default t)) | ||
3282 | (remove-import | ||
3283 | (list :key suggestion | ||
3284 | :title (concat "Remove: import " | ||
3285 | (plist-get suggestion :module)) | ||
3286 | :default t)) | ||
3287 | (fix-typo | ||
3288 | (list :key suggestion | ||
3289 | :title (concat "Replace ‘" | ||
3290 | (plist-get suggestion :typo) | ||
3291 | "’ with ‘" | ||
3292 | (plist-get suggestion :replacement) | ||
3293 | "’") | ||
3294 | :default (null (cdr intero-suggestions)))) | ||
3295 | (add-signature | ||
3296 | (list :key suggestion | ||
3297 | :title (concat "Add signature: " | ||
3298 | (plist-get suggestion :signature)) | ||
3299 | :default t)) | ||
3300 | (redundant-constraint | ||
3301 | (list :key suggestion | ||
3302 | :title (concat | ||
3303 | "Remove redundant constraints: " | ||
3304 | (string-join (plist-get suggestion :redundancies) | ||
3305 | ", ") | ||
3306 | "\n from the " | ||
3307 | (plist-get suggestion :signature)) | ||
3308 | :default nil)))) | ||
3309 | intero-suggestions))))) | ||
3310 | (if (null to-apply) | ||
3311 | (message "No changes selected to apply.") | ||
3312 | (let ((sorted (sort to-apply | ||
3313 | (lambda (lt gt) | ||
3314 | (let ((lt-line (or (plist-get lt :line) 0)) | ||
3315 | (lt-column (or (plist-get lt :column) 0)) | ||
3316 | (gt-line (or (plist-get gt :line) 0)) | ||
3317 | (gt-column (or (plist-get gt :column) 0))) | ||
3318 | (or (> lt-line gt-line) | ||
3319 | (and (= lt-line gt-line) | ||
3320 | (> lt-column gt-column)))))))) | ||
3321 | ;; # Changes unrelated to the buffer | ||
3322 | (cl-loop | ||
3323 | for suggestion in sorted | ||
3324 | do (cl-case (plist-get suggestion :type) | ||
3325 | (add-package | ||
3326 | (intero-add-package (plist-get suggestion :package))))) | ||
3327 | ;; # Changes that do not increase/decrease line numbers | ||
3328 | ;; | ||
3329 | ;; Update in-place suggestions | ||
3330 | (cl-loop | ||
3331 | for suggestion in sorted | ||
3332 | do (cl-case (plist-get suggestion :type) | ||
3333 | (add-to-import | ||
3334 | (save-excursion | ||
3335 | (goto-char (point-min)) | ||
3336 | (forward-line (1- (plist-get suggestion :line))) | ||
3337 | (when (and (search-forward (plist-get suggestion :module) nil t 1) | ||
3338 | (search-forward "(" nil t 1)) | ||
3339 | (insert (if (string-match-p "^[_a-zA-Z]" (plist-get suggestion :ident)) | ||
3340 | (plist-get suggestion :ident) | ||
3341 | (concat "(" (plist-get suggestion :ident) ")"))) | ||
3342 | (unless (looking-at-p "[:space:]*)") | ||
3343 | (insert ", "))))) | ||
3344 | (redundant-import-item | ||
3345 | (save-excursion | ||
3346 | (goto-char (point-min)) | ||
3347 | (forward-line (1- (plist-get suggestion :line))) | ||
3348 | (let* ((case-fold-search nil) | ||
3349 | (start (search-forward "(" nil t 1)) | ||
3350 | (end (or (save-excursion | ||
3351 | (when (search-forward-regexp "\n[^ \t]" nil t 1) | ||
3352 | (1- (point)))) | ||
3353 | (line-end-position))) | ||
3354 | (regex | ||
3355 | (concat | ||
3356 | "\\(" | ||
3357 | (mapconcat | ||
3358 | (lambda (ident) | ||
3359 | (if (string-match-p "^[_a-zA-Z]" ident) | ||
3360 | (concat "\\<" (regexp-quote ident) "\\> ?" "\\("(regexp-quote "(..)") "\\)?") | ||
3361 | (concat "(" (regexp-quote ident) ")"))) | ||
3362 | (plist-get suggestion :idents) | ||
3363 | "\\|") | ||
3364 | "\\)")) | ||
3365 | (string (buffer-substring start end))) | ||
3366 | (delete-region start end) | ||
3367 | (insert | ||
3368 | (replace-regexp-in-string | ||
3369 | ",[\n ]*)" ")" | ||
3370 | (replace-regexp-in-string | ||
3371 | "^[\n ,]*" "" | ||
3372 | (replace-regexp-in-string | ||
3373 | "[\n ,]*,[\n ,]*" ", " | ||
3374 | (replace-regexp-in-string | ||
3375 | ",[\n ]*)" ")" | ||
3376 | (replace-regexp-in-string | ||
3377 | regex "" | ||
3378 | string))))) | ||
3379 | (make-string (1- (length (split-string string "\n" t))) 10))))) | ||
3380 | (fix-typo | ||
3381 | (save-excursion | ||
3382 | (goto-char (point-min)) | ||
3383 | (forward-line (1- (plist-get suggestion :line))) | ||
3384 | (move-to-column (- (plist-get suggestion :column) 1)) | ||
3385 | (delete-char (length (plist-get suggestion :typo))) | ||
3386 | (insert (plist-get suggestion :replacement)))) | ||
3387 | (add-missing-fields | ||
3388 | (save-excursion | ||
3389 | (goto-char (point-min)) | ||
3390 | (forward-line (1- (plist-get suggestion :line))) | ||
3391 | (move-to-column (- (plist-get suggestion :column) 1)) | ||
3392 | (search-forward "{") | ||
3393 | (unless (looking-at "}") | ||
3394 | (save-excursion (insert ", "))) | ||
3395 | (insert (mapconcat (lambda (field) (concat field " = _")) | ||
3396 | (plist-get suggestion :fields) | ||
3397 | ", ")))))) | ||
3398 | ;; # Changes that do increase/decrease line numbers | ||
3399 | ;; | ||
3400 | ;; Remove redundant constraints | ||
3401 | (cl-loop | ||
3402 | for suggestion in sorted | ||
3403 | do (cl-case (plist-get suggestion :type) | ||
3404 | (redundant-constraint | ||
3405 | (save-excursion | ||
3406 | (goto-char (point-min)) | ||
3407 | (forward-line (1- (plist-get suggestion :line))) | ||
3408 | (search-forward-regexp "[[:alnum:][:space:]\n]*=>") | ||
3409 | (backward-sexp 2) | ||
3410 | (let ((start (1+ (point)))) | ||
3411 | (forward-sexp) | ||
3412 | (let* ((end (1- (point))) | ||
3413 | (constraints (intero-parse-comma-list | ||
3414 | (buffer-substring start end))) | ||
3415 | (nonredundant | ||
3416 | (cl-loop for r in (plist-get suggestion :redundancies) | ||
3417 | with nonredundant = constraints | ||
3418 | do (setq nonredundant (delete r nonredundant)) | ||
3419 | finally return nonredundant))) | ||
3420 | (goto-char start) | ||
3421 | (delete-char (- end start)) | ||
3422 | (insert (string-join nonredundant ", ")))))))) | ||
3423 | |||
3424 | ;; Add a type signature to a top-level binding. | ||
3425 | (cl-loop | ||
3426 | for suggestion in sorted | ||
3427 | do (cl-case (plist-get suggestion :type) | ||
3428 | (add-signature | ||
3429 | (save-excursion | ||
3430 | (goto-char (point-min)) | ||
3431 | (forward-line (1- (plist-get suggestion :line))) | ||
3432 | (insert (plist-get suggestion :signature)) | ||
3433 | (insert "\n"))))) | ||
3434 | |||
3435 | ;; Remove import lines from the file. May remove more than one | ||
3436 | ;; line per import. | ||
3437 | (cl-loop | ||
3438 | for suggestion in sorted | ||
3439 | do (cl-case (plist-get suggestion :type) | ||
3440 | (remove-import | ||
3441 | (save-excursion | ||
3442 | (goto-char (point-min)) | ||
3443 | (forward-line (1- (plist-get suggestion :line))) | ||
3444 | (delete-region (line-beginning-position) | ||
3445 | (or (when (search-forward-regexp "\n[^ \t]" nil t 1) | ||
3446 | (1- (point))) | ||
3447 | (line-end-position))))))) | ||
3448 | ;; Add extensions to the top of the file | ||
3449 | (cl-loop | ||
3450 | for suggestion in sorted | ||
3451 | do (cl-case (plist-get suggestion :type) | ||
3452 | (add-extension | ||
3453 | (save-excursion | ||
3454 | (goto-char (point-min)) | ||
3455 | (intero-skip-shebangs) | ||
3456 | (insert "{-# LANGUAGE " | ||
3457 | (plist-get suggestion :extension) | ||
3458 | " #-}\n"))) | ||
3459 | (add-ghc-option | ||
3460 | (save-excursion | ||
3461 | (goto-char (point-min)) | ||
3462 | (intero-skip-shebangs) | ||
3463 | (insert "{-# OPTIONS_GHC " | ||
3464 | (plist-get suggestion :option) | ||
3465 | " #-}\n")))))))))) | ||
3466 | |||
3467 | (defun intero-skip-shebangs () | ||
3468 | "Skip #! and -- shebangs used in Haskell scripts." | ||
3469 | (when (looking-at-p "#!") (forward-line 1)) | ||
3470 | (when (looking-at-p "-- stack ") (forward-line 1))) | ||
3471 | |||
3472 | (defun intero--warn (message &rest args) | ||
3473 | "Display a warning message made from (format MESSAGE ARGS...). | ||
3474 | Equivalent to 'warn', but label the warning as coming from intero." | ||
3475 | (display-warning 'intero (apply 'format message args) :warning)) | ||
3476 | |||
3477 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
3478 | ;; Intero help buffer | ||
3479 | |||
3480 | (defun intero-help-buffer () | ||
3481 | "Get the help buffer." | ||
3482 | (with-current-buffer (get-buffer-create "*Intero-Help*") | ||
3483 | (unless (eq major-mode 'intero-help-mode) (intero-help-mode)) | ||
3484 | (current-buffer))) | ||
3485 | |||
3486 | (defvar-local intero-help-entries nil | ||
3487 | "History for help entries.") | ||
3488 | |||
3489 | (defun intero-help-pagination () | ||
3490 | "Insert pagination for the current help buffer." | ||
3491 | (let ((buffer-read-only nil)) | ||
3492 | (when (> (length intero-help-entries) 1) | ||
3493 | (insert-text-button | ||
3494 | "[back]" | ||
3495 | 'buffer (current-buffer) | ||
3496 | 'action (lambda (&rest ignore) | ||
3497 | (let ((first (pop intero-help-entries))) | ||
3498 | (setcdr (last intero-help-entries) (cons first nil)) | ||
3499 | (intero-help-refresh))) | ||
3500 | 'keymap (let ((map (make-sparse-keymap))) | ||
3501 | (define-key map [mouse-1] 'push-button) | ||
3502 | map)) | ||
3503 | (insert " ") | ||
3504 | (insert-text-button | ||
3505 | "[forward]" | ||
3506 | 'buffer (current-buffer) | ||
3507 | 'keymap (let ((map (make-sparse-keymap))) | ||
3508 | (define-key map [mouse-1] 'push-button) | ||
3509 | map) | ||
3510 | 'action (lambda (&rest ignore) | ||
3511 | (setq intero-help-entries | ||
3512 | (intero-bring-to-front intero-help-entries)) | ||
3513 | (intero-help-refresh))) | ||
3514 | (insert " ") | ||
3515 | (insert-text-button | ||
3516 | "[forget]" | ||
3517 | 'buffer (current-buffer) | ||
3518 | 'keymap (let ((map (make-sparse-keymap))) | ||
3519 | (define-key map [mouse-1] 'push-button) | ||
3520 | map) | ||
3521 | 'action (lambda (&rest ignore) | ||
3522 | (pop intero-help-entries) | ||
3523 | (intero-help-refresh))) | ||
3524 | (insert "\n\n")))) | ||
3525 | |||
3526 | (defun intero-help-refresh () | ||
3527 | "Refresh the help buffer with the current thing in the history." | ||
3528 | (interactive) | ||
3529 | (let ((buffer-read-only nil)) | ||
3530 | (erase-buffer) | ||
3531 | (if (car intero-help-entries) | ||
3532 | (progn | ||
3533 | (intero-help-pagination) | ||
3534 | (insert (cdr (car intero-help-entries))) | ||
3535 | (goto-char (point-min))) | ||
3536 | (insert "No help entries.")))) | ||
3537 | |||
3538 | (defun intero-bring-to-front (xs) | ||
3539 | "Bring the last element of XS to the front." | ||
3540 | (cons (car (last xs)) (butlast xs))) | ||
3541 | |||
3542 | (defun intero-help-push-history (buffer item) | ||
3543 | "Add (BUFFER . ITEM) to the history of help entries." | ||
3544 | (push (cons buffer item) intero-help-entries)) | ||
3545 | |||
3546 | (defun intero-help-info (ident) | ||
3547 | "Get the info of the thing with IDENT at point." | ||
3548 | (interactive (list (intero-ident-at-point))) | ||
3549 | (with-current-buffer (car (car intero-help-entries)) | ||
3550 | (intero-info ident))) | ||
3551 | |||
3552 | (define-derived-mode intero-help-mode help-mode "Intero-Help" | ||
3553 | "Help mode for intero." | ||
3554 | (setq buffer-read-only t) | ||
3555 | (setq intero-help-entries nil)) | ||
3556 | |||
3557 | (define-key intero-help-mode-map (kbd "g") 'intero-help-refresh) | ||
3558 | (define-key intero-help-mode-map (kbd "C-c C-i") 'intero-help-info) | ||
3559 | |||
3560 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
3561 | ;; Intero highlight uses mode | ||
3562 | |||
3563 | (defvar intero-highlight-uses-mode-map | ||
3564 | (let ((map (make-sparse-keymap))) | ||
3565 | (define-key map (kbd "n") 'intero-highlight-uses-mode-next) | ||
3566 | (define-key map (kbd "TAB") 'intero-highlight-uses-mode-next) | ||
3567 | (define-key map (kbd "p") 'intero-highlight-uses-mode-prev) | ||
3568 | (define-key map (kbd "S-TAB") 'intero-highlight-uses-mode-prev) | ||
3569 | (define-key map (kbd "<backtab>") 'intero-highlight-uses-mode-prev) | ||
3570 | (define-key map (kbd "RET") 'intero-highlight-uses-mode-stop-here) | ||
3571 | (define-key map (kbd "r") 'intero-highlight-uses-mode-replace) | ||
3572 | (define-key map (kbd "q") 'intero-highlight-uses-mode) | ||
3573 | map) | ||
3574 | "Keymap for using `intero-highlight-uses-mode'.") | ||
3575 | |||
3576 | (defvar-local intero-highlight-uses-mode-point nil) | ||
3577 | (defvar-local intero-highlight-uses-buffer-old-mode nil) | ||
3578 | |||
3579 | ;;;###autoload | ||
3580 | (define-minor-mode intero-highlight-uses-mode | ||
3581 | "Minor mode for highlighting and jumping between uses." | ||
3582 | :lighter " Uses" | ||
3583 | :keymap intero-highlight-uses-mode-map | ||
3584 | (if intero-highlight-uses-mode | ||
3585 | (progn (setq intero-highlight-uses-buffer-old-mode buffer-read-only) | ||
3586 | (setq buffer-read-only t) | ||
3587 | (setq intero-highlight-uses-mode-point (point))) | ||
3588 | (progn (setq buffer-read-only intero-highlight-uses-buffer-old-mode) | ||
3589 | (when intero-highlight-uses-mode-point | ||
3590 | (goto-char intero-highlight-uses-mode-point)))) | ||
3591 | (remove-overlays (point-min) (point-max) 'intero-highlight-uses-mode-highlight t)) | ||
3592 | |||
3593 | (defun intero-highlight-uses-mode-replace () | ||
3594 | "Replace all highlighted instances in the buffer with something else." | ||
3595 | (interactive) | ||
3596 | (save-excursion | ||
3597 | (goto-char (point-min)) | ||
3598 | (let ((o (intero-highlight-uses-mode-next))) | ||
3599 | (when o | ||
3600 | (let ((replacement | ||
3601 | (read-from-minibuffer | ||
3602 | (format "Replace uses %s with: " | ||
3603 | (buffer-substring | ||
3604 | (overlay-start o) | ||
3605 | (overlay-end o)))))) | ||
3606 | (let ((inhibit-read-only t)) | ||
3607 | (while o | ||
3608 | (goto-char (overlay-start o)) | ||
3609 | (delete-region (overlay-start o) | ||
3610 | (overlay-end o)) | ||
3611 | (insert replacement) | ||
3612 | (setq o (intero-highlight-uses-mode-next)))))))) | ||
3613 | (intero-highlight-uses-mode -1)) | ||
3614 | |||
3615 | (defun intero-highlight-uses-mode-stop-here () | ||
3616 | "Stop at this point." | ||
3617 | (interactive) | ||
3618 | (setq intero-highlight-uses-mode-point (point)) | ||
3619 | (intero-highlight-uses-mode -1)) | ||
3620 | |||
3621 | (defun intero-highlight-uses-mode-next () | ||
3622 | "Jump to next result." | ||
3623 | (interactive) | ||
3624 | (let ((os (sort (cl-remove-if (lambda (o) | ||
3625 | (or (<= (overlay-start o) (point)) | ||
3626 | (not (overlay-get o 'intero-highlight-uses-mode-highlight)))) | ||
3627 | (overlays-in (point) (point-max))) | ||
3628 | (lambda (a b) | ||
3629 | (< (overlay-start a) | ||
3630 | (overlay-start b)))))) | ||
3631 | (when os | ||
3632 | (mapc | ||
3633 | (lambda (o) | ||
3634 | (when (overlay-get o 'intero-highlight-uses-mode-highlight) | ||
3635 | (overlay-put o 'face 'lazy-highlight))) | ||
3636 | (overlays-in (line-beginning-position) (line-end-position))) | ||
3637 | (goto-char (overlay-start (car os))) | ||
3638 | (overlay-put (car os) 'face 'isearch) | ||
3639 | (car os)))) | ||
3640 | |||
3641 | (defun intero-highlight-uses-mode-prev () | ||
3642 | "Jump to previous result." | ||
3643 | (interactive) | ||
3644 | (let ((os (sort (cl-remove-if (lambda (o) | ||
3645 | (or (>= (overlay-end o) (point)) | ||
3646 | (not (overlay-get o 'intero-highlight-uses-mode-highlight)))) | ||
3647 | (overlays-in (point-min) (point))) | ||
3648 | (lambda (a b) | ||
3649 | (> (overlay-start a) | ||
3650 | (overlay-start b)))))) | ||
3651 | (when os | ||
3652 | (mapc | ||
3653 | (lambda (o) | ||
3654 | (when (overlay-get o 'intero-highlight-uses-mode-highlight) | ||
3655 | (overlay-put o 'face 'lazy-highlight))) | ||
3656 | (overlays-in (line-beginning-position) (line-end-position))) | ||
3657 | (goto-char (overlay-start (car os))) | ||
3658 | (overlay-put (car os) 'face 'isearch) | ||
3659 | (car os)))) | ||
3660 | |||
3661 | (defun intero-highlight-uses-mode-highlight (start end current) | ||
3662 | "Make a highlight overlay at the span from START to END. | ||
3663 | If CURRENT, highlight the span uniquely." | ||
3664 | (let ((o (make-overlay start end))) | ||
3665 | (overlay-put o 'priority 999) | ||
3666 | (overlay-put o 'face | ||
3667 | (if current | ||
3668 | 'isearch | ||
3669 | 'lazy-highlight)) | ||
3670 | (overlay-put o 'intero-highlight-uses-mode-highlight t))) | ||
3671 | |||
3672 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
3673 | |||
3674 | (provide 'intero) | ||
3675 | |||
3676 | ;;; intero.el ends here | ||
diff --git a/.stack-work/intero/intero-script15638LtG b/.stack-work/intero/intero-script15638LtG deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script15638LtG +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script18425zvS b/.stack-work/intero/intero-script18425zvS deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script18425zvS +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script21871YJc b/.stack-work/intero/intero-script21871YJc deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script21871YJc +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script250346te b/.stack-work/intero/intero-script250346te deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script250346te +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script25034H4k b/.stack-work/intero/intero-script25034H4k deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script25034H4k +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script25034UCr b/.stack-work/intero/intero-script25034UCr deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script25034UCr +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script25034UQT b/.stack-work/intero/intero-script25034UQT deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script25034UQT +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script25034gZS b/.stack-work/intero/intero-script25034gZS deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script25034gZS +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script25034haZ b/.stack-work/intero/intero-script25034haZ deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script25034haZ +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script25034tjY b/.stack-work/intero/intero-script25034tjY deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script25034tjY +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script265874pa b/.stack-work/intero/intero-script265874pa deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script265874pa +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script26587REU b/.stack-work/intero/intero-script26587REU deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script26587REU +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script26587S-m b/.stack-work/intero/intero-script26587S-m deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script26587S-m +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script26587sZn b/.stack-work/intero/intero-script26587sZn deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script26587sZn +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script31583KtK b/.stack-work/intero/intero-script31583KtK deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script31583KtK +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script31583X3Q b/.stack-work/intero/intero-script31583X3Q deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script31583X3Q +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script38150SJ b/.stack-work/intero/intero-script38150SJ deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script38150SJ +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script3815OuJ b/.stack-work/intero/intero-script3815OuJ deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script3815OuJ +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script3815a3I b/.stack-work/intero/intero-script3815a3I deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script3815a3I +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script3815nBP b/.stack-work/intero/intero-script3815nBP deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script3815nBP +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script4078Wgy b/.stack-work/intero/intero-script4078Wgy deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script4078Wgy +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script75130iQ b/.stack-work/intero/intero-script75130iQ deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script75130iQ +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero-script7513nYK b/.stack-work/intero/intero-script7513nYK deleted file mode 100644 index 56fbd62..0000000 --- a/.stack-work/intero/intero-script7513nYK +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | :set prompt "" | ||
2 | :set -fbyte-code | ||
3 | :set -fdiagnostics-color=never | ||
4 | :set prompt "\4 " | ||
diff --git a/.stack-work/intero/intero15638-bM-STAGING.hs b/.stack-work/intero/intero15638-bM-STAGING.hs deleted file mode 100644 index ef7396b..0000000 --- a/.stack-work/intero/intero15638-bM-STAGING.hs +++ /dev/null | |||
@@ -1,132 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | --import Numeric.LinearAlgebra | ||
8 | import System.Random | ||
9 | import Foreign.Storable | ||
10 | |||
11 | |||
12 | data Square = X -- Attacked | ||
13 | | Qu -- Queen | ||
14 | | O -- Open/available | ||
15 | deriving (Show, Eq) | ||
16 | |||
17 | |||
18 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
19 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
20 | |||
21 | lo8 = [0..8] -- list of 8 | ||
22 | initBoard = matrix 8 8 $ \_ -> O | ||
23 | |||
24 | placeQueen (r,c) b = placeQueen' $ markAttacked b | ||
25 | where | ||
26 | placeQueen' b = setElem Qu (r,c) b | ||
27 | markAttacked b = rowAttacked $ colAttacked $ diagAttacked b | ||
28 | fX = (\_ x -> X) | ||
29 | rowAttacked b = mapRow fX r b | ||
30 | colAttacked b = mapCol fX c b | ||
31 | diagAttacked b = let d = diag r c | ||
32 | attack ap ab = setElem X ap ab | ||
33 | attackall [x] = attack x b | ||
34 | attackall (x:xs) = attack x (attackall xs) | ||
35 | in attackall d | ||
36 | -- in last $ map (\p -> setElem X p b) d | ||
37 | -- in last $ scanr (\p -> setElem X p) b | ||
38 | |||
39 | --solve b = placeQueen (nextAvail b) b | ||
40 | |||
41 | nextAvail b = head [(x,y) | x <- [1..8], y <- [1..8], b ! (x,y) == O] | ||
42 | |||
43 | -- solve b = placeQueen n | ||
44 | -- where n = nextAvail b | ||
45 | -- next = placeQueen n | ||
46 | -- solve' = | ||
47 | |||
48 | solve b = | ||
49 | where solve' b = (\n = placeQueen $ nextAvail b) | ||
50 | |||
51 | |||
52 | --diag r c = [(x,y) | x <- [1..8], y <- [1..8], (abs x-y) == 1 ] | ||
53 | diag r c = let rl = [1..r] | ||
54 | rr = [r..8] | ||
55 | cu = [1..c] | ||
56 | cd = [c..8] | ||
57 | in zip rl cu ++ zip rr cd ++ | ||
58 | zip (reverse rl) cd ++ zip (reverse rr) cu | ||
59 | |||
60 | |||
61 | |||
62 | |||
63 | -- diag (r,c) b = | ||
64 | -- where l = (r-1,c-1) | ||
65 | -- r = (r+1,c+1) | ||
66 | -- lowbound = 1 | ||
67 | -- highbound = 8 | ||
68 | |||
69 | |||
70 | --initBoard = (8><8) $ repeat O | ||
71 | |||
72 | --firstOpen b = take 1 [(r,c)| r <- [1..8], c <- [1..8], b ! (r,c) == O] | ||
73 | |||
74 | -- firstOpen b = let | ||
75 | -- elem x y = b ! (x, y) | ||
76 | -- in map | ||
77 | |||
78 | -- nextOpen b = | ||
79 | |||
80 | -- solve = let board = initBoard | ||
81 | |||
82 | --avail r c b = | ||
83 | |||
84 | --rowOccupied r b = any (== Q) $ getRow r b | ||
85 | |||
86 | |||
87 | |||
88 | -- diags p = let r = r p | ||
89 | -- l = l p | ||
90 | -- in p : inRange r | ||
91 | -- where inRange x = x >= 1 && x <= 8 | ||
92 | -- inRange' (x,y) = inRange (x) && inRange (y) | ||
93 | -- r x = (fst x + 1, snd x + 1) | ||
94 | -- l x = (fst x - 1, snd x - 1) | ||
95 | -- nexts x = diags' x | ||
96 | -- diags' x = [(fst x - 1, snd x -1), (fst x + 1, snd x + 1)] | ||
97 | -- -- down x = (fst x - 1, snd x - 1) | ||
98 | -- -- down (r,c) = let d = (r-1,c-1) in if inRange d then d : down d else | ||
99 | -- -- up (r,c) = let u = (r+1,c+1) in u : up u | ||
100 | |||
101 | |||
102 | --mapDiag r c = undefined | ||
103 | |||
104 | --placeAll = repeat 8 placeQueen | ||
105 | |||
106 | winnable = undefined | ||
107 | |||
108 | nextOpen board = undefined | ||
109 | |||
110 | -- placeQueen r c = | ||
111 | |||
112 | --b = getE | ||
113 | |||
114 | --placeQueen r c b = b ^. | ||
115 | |||
116 | -- rand = do | ||
117 | -- g <- newStdGen | ||
118 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
119 | |||
120 | |||
121 | -- try r c = let next b = placeQueen r c b | ||
122 | -- in next initBoard | ||
123 | |||
124 | -- try' p = let next b = p b | ||
125 | -- in next initBoard | ||
126 | |||
127 | |||
128 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
129 | |||
130 | main :: IO () | ||
131 | main = do | ||
132 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero15638LmS-TEMP.hs b/.stack-work/intero/intero15638LmS-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero15638LmS-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero18425meY-STAGING.hs b/.stack-work/intero/intero18425meY-STAGING.hs deleted file mode 100644 index 820de4e..0000000 --- a/.stack-work/intero/intero18425meY-STAGING.hs +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | import System.Random | ||
8 | |||
9 | data Square = X | Q deriving (Show) | ||
10 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
11 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
12 | |||
13 | lo8 = [0..8] -- list of 8 | ||
14 | initBoard = matrix 8 8 $ \_ -> X | ||
15 | --avail r c b = | ||
16 | |||
17 | --rowOccupied r b = any (== Q) $ getRow r b | ||
18 | placeQueen r c b = setElem Q (r,c) b | ||
19 | |||
20 | --placeAll = repeat 8 placeQueen | ||
21 | |||
22 | winnable = undefined | ||
23 | |||
24 | -- placeQueen r c = | ||
25 | |||
26 | --b = getE | ||
27 | |||
28 | --placeQueen r c b = b ^. | ||
29 | |||
30 | -- rand = do | ||
31 | -- g <- newStdGen | ||
32 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
33 | |||
34 | |||
35 | -- try r c = let next b = placeQueen r c b | ||
36 | -- in next initBoard | ||
37 | |||
38 | -- try' p = let next b = p b | ||
39 | -- in next initBoard | ||
40 | |||
41 | |||
42 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
43 | |||
44 | main :: IO () | ||
45 | main = do | ||
46 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero18425zoe-TEMP.hs b/.stack-work/intero/intero18425zoe-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero18425zoe-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero21871-0P-TEMP.hs b/.stack-work/intero/intero21871-0P-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero21871-0P-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero21871xqJ-STAGING.hs b/.stack-work/intero/intero21871xqJ-STAGING.hs deleted file mode 100644 index 820de4e..0000000 --- a/.stack-work/intero/intero21871xqJ-STAGING.hs +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | import System.Random | ||
8 | |||
9 | data Square = X | Q deriving (Show) | ||
10 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
11 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
12 | |||
13 | lo8 = [0..8] -- list of 8 | ||
14 | initBoard = matrix 8 8 $ \_ -> X | ||
15 | --avail r c b = | ||
16 | |||
17 | --rowOccupied r b = any (== Q) $ getRow r b | ||
18 | placeQueen r c b = setElem Q (r,c) b | ||
19 | |||
20 | --placeAll = repeat 8 placeQueen | ||
21 | |||
22 | winnable = undefined | ||
23 | |||
24 | -- placeQueen r c = | ||
25 | |||
26 | --b = getE | ||
27 | |||
28 | --placeQueen r c b = b ^. | ||
29 | |||
30 | -- rand = do | ||
31 | -- g <- newStdGen | ||
32 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
33 | |||
34 | |||
35 | -- try r c = let next b = placeQueen r c b | ||
36 | -- in next initBoard | ||
37 | |||
38 | -- try' p = let next b = p b | ||
39 | -- in next initBoard | ||
40 | |||
41 | |||
42 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
43 | |||
44 | main :: IO () | ||
45 | main = do | ||
46 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero232079je-TEMP.hs b/.stack-work/intero/intero232079je-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero232079je-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero23207wZY-STAGING.hs b/.stack-work/intero/intero23207wZY-STAGING.hs deleted file mode 100644 index 820de4e..0000000 --- a/.stack-work/intero/intero23207wZY-STAGING.hs +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | import System.Random | ||
8 | |||
9 | data Square = X | Q deriving (Show) | ||
10 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
11 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
12 | |||
13 | lo8 = [0..8] -- list of 8 | ||
14 | initBoard = matrix 8 8 $ \_ -> X | ||
15 | --avail r c b = | ||
16 | |||
17 | --rowOccupied r b = any (== Q) $ getRow r b | ||
18 | placeQueen r c b = setElem Q (r,c) b | ||
19 | |||
20 | --placeAll = repeat 8 placeQueen | ||
21 | |||
22 | winnable = undefined | ||
23 | |||
24 | -- placeQueen r c = | ||
25 | |||
26 | --b = getE | ||
27 | |||
28 | --placeQueen r c b = b ^. | ||
29 | |||
30 | -- rand = do | ||
31 | -- g <- newStdGen | ||
32 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
33 | |||
34 | |||
35 | -- try r c = let next b = placeQueen r c b | ||
36 | -- in next initBoard | ||
37 | |||
38 | -- try' p = let next b = p b | ||
39 | -- in next initBoard | ||
40 | |||
41 | |||
42 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
43 | |||
44 | main :: IO () | ||
45 | main = do | ||
46 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero25034GFG-TEMP.hs b/.stack-work/intero/intero25034GFG-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero25034GFG-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero25034U72-STAGING.hs b/.stack-work/intero/intero25034U72-STAGING.hs deleted file mode 100644 index 9cd992d..0000000 --- a/.stack-work/intero/intero25034U72-STAGING.hs +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | main :: IO () | ||
4 | main = do | ||
5 | putStrLn "hello world" | ||
diff --git a/.stack-work/intero/intero265874by-STAGING.hs b/.stack-work/intero/intero265874by-STAGING.hs deleted file mode 100644 index a82dbd0..0000000 --- a/.stack-work/intero/intero265874by-STAGING.hs +++ /dev/null | |||
@@ -1,201 +0,0 @@ | |||
1 | {-# LANGUAGE FlexibleContexts #-} | ||
2 | |||
3 | module Main where | ||
4 | |||
5 | import Control.Lens | ||
6 | import Linear.V2 | ||
7 | import Linear.V3 | ||
8 | import Data.Matrix | ||
9 | --import Numeric.LinearAlgebra | ||
10 | import System.Random | ||
11 | import Foreign.Storable | ||
12 | |||
13 | |||
14 | data Square = X -- Attacked | ||
15 | | Qu -- Queen | ||
16 | | O -- Open/available | ||
17 | deriving (Show, Eq) | ||
18 | |||
19 | |||
20 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
21 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
22 | |||
23 | lo8 = [0..8] -- list of 8 | ||
24 | initBoard = matrix 8 8 $ \_ -> O | ||
25 | |||
26 | placeQueen (r,c) b = placeQueen' $ markAttacked b | ||
27 | where | ||
28 | placeQueen' b = setElem Qu (r,c) b | ||
29 | markAttacked b = rowAttacked $ colAttacked $ diagAttacked b | ||
30 | fX = (\_ x -> X) | ||
31 | rowAttacked b = mapRow fX r b | ||
32 | colAttacked b = mapCol fX c b | ||
33 | diagAttacked b = let d = diag r c | ||
34 | attack ap ab = setElem X ap ab | ||
35 | attackall [x] = attack x b | ||
36 | attackall (x:xs) = attack x (attackall xs) | ||
37 | in attackall d | ||
38 | -- in last $ map (\p -> setElem X p b) d | ||
39 | -- in last $ scanr (\p -> setElem X p) b | ||
40 | |||
41 | --solve b = placeQueen (nextAvail b) b | ||
42 | |||
43 | nextAvail b = head [(x,y) | x <- [1..8], y <- [1..8], b ! (x,y) == O] | ||
44 | |||
45 | -- solve b = placeQueen n | ||
46 | -- where n = nextAvail b | ||
47 | -- next = placeQueen n | ||
48 | -- solve' = | ||
49 | |||
50 | -- solve b = | ||
51 | -- where solve' b = (\n = placeQueen $ nextAvail b) | ||
52 | |||
53 | solve b = second | ||
54 | where first = placeQueen (nextAvail b) b | ||
55 | second = placeQueen (nextAvail first) first | ||
56 | |||
57 | solve' b = s (nA b) b | ||
58 | where s n b = placeQueen n b | ||
59 | nA b = nextAvail b | ||
60 | |||
61 | |||
62 | --diag r c = [(x,y) | x <- [1..8], y <- [1..8], (abs x-y) == 1 ] | ||
63 | diag r c = let rl = [1..r] | ||
64 | rr = [r..8] | ||
65 | cu = [1..c] | ||
66 | cd = [c..8] | ||
67 | in zip rl cu ++ zip rr cd ++ | ||
68 | zip (reverse rl) cd ++ zip (reverse rr) cu | ||
69 | |||
70 | allops a b = [(a, a), (a, b), (b, a), (b, b)] | ||
71 | ops = allops (+1) (subtract 1) | ||
72 | applyop (x,y) (a,b) = (a x,b y) | ||
73 | applyops p = map (applyop p) ops | ||
74 | |||
75 | mapDiag f c b = map (\(x,y) -> setElem f (x,y) b) ds | ||
76 | where ds = diag'' c | ||
77 | |||
78 | mapDiag' f c b = map (on b f) ds | ||
79 | where ds = diag'' c | ||
80 | on b x p = let next bo = set x p bo | ||
81 | in map (next) b | ||
82 | set x p b = setElem x p b | ||
83 | |||
84 | --mapDiag'' f c b = take 10 $ iterate (map (set f) ds) b | ||
85 | -- mapDiag'' f c b = take 10 $ iterate ( | ||
86 | -- where ds = diag'' c | ||
87 | -- eachD' p = setElem f p | ||
88 | -- eachD [p] = eachD' p | ||
89 | -- eachD (p:ps) = eachD' p : eachD ps | ||
90 | |||
91 | markX p b = setElem X p b | ||
92 | |||
93 | mapDiag''' f p b = applyfs fs b | ||
94 | where ds = diag'' p | ||
95 | fs = map (\x y -> markX x y) ds | ||
96 | applyfs [x] b = x b | ||
97 | applyfs (x:xs) b = applyfs x (applyfs xs) | ||
98 | |||
99 | |||
100 | onBoard b f = let next n = f n | ||
101 | in next b | ||
102 | |||
103 | --eB = mapDiag''' (\_ -> 1) (5,5) $ matrix 8 8 (\_ -> 0) | ||
104 | |||
105 | diag'' c = apply c | ||
106 | where | ||
107 | min = 1 | ||
108 | max = 8 | ||
109 | ops a b = [(a, a), (a, b), (b, a), (b, b)] | ||
110 | allops = ops (+1) (subtract 1) | ||
111 | applyop (x,y) (a,b) = (a x,b y) | ||
112 | applyopr (a,b) (x,y) = traverse' (\(d,f) -> (a d, b f)) (x,y) | ||
113 | traverse' f x = takeWhile (within) $ iterate f x | ||
114 | within (x,y) = let within' z = z >= min && z <= max | ||
115 | in within' x && within' y | ||
116 | applyops ops p = map (\x -> applyopr x p) ops | ||
117 | apply x = concat $ applyops allops x | ||
118 | |||
119 | -- opfs ops = map (\(o1,o2) -> (\(x,y) -> (o1 x, o2 y))) ops | ||
120 | -- applyops x = map x opfs | ||
121 | -- ops = map ( | ||
122 | --applyops (x,y) = map (($ x), ($ y)) $ allops (+1) (-1) | ||
123 | -- fx a b = map \((oa,ob) -> ((cx,cy) -> (oa cx, ob cy))) $ allops (+1) (-1) | ||
124 | --applyops x = [(((fst f) (fst x)), ((snd f) (snd x))) | f <- allops (+1) (-1)] | ||
125 | -- applyops x = (fst x, snd x) | ||
126 | -- applyops x = map \((p,m) -> (p (fst x), m (snd x))) $ allops (+1) (-1) | ||
127 | -- apply c = map (\(p,m) -> (p (fst c), m (snd c))) $ allops (+1) (-1) | ||
128 | -- apply ops c = [( (fst o) (fst c), (snd o) (snd c) | o <- ops | ||
129 | |||
130 | |||
131 | |||
132 | -- diag (r,c) b = | ||
133 | -- where l = (r-1,c-1) | ||
134 | -- r = (r+1,c+1) | ||
135 | -- lowbound = 1 | ||
136 | -- highbound = 8 | ||
137 | |||
138 | |||
139 | --initBoard = (8><8) $ repeat O | ||
140 | |||
141 | --firstOpen b = take 1 [(r,c)| r <- [1..8], c <- [1..8], b ! (r,c) == O] | ||
142 | |||
143 | -- firstOpen b = let | ||
144 | -- elem x y = b ! (x, y) | ||
145 | -- in map | ||
146 | |||
147 | -- nextOpen b = | ||
148 | |||
149 | -- solve = let board = initBoard | ||
150 | |||
151 | --avail r c b = | ||
152 | |||
153 | --rowOccupied r b = any (== Q) $ getRow r b | ||
154 | |||
155 | |||
156 | |||
157 | -- diags p = let r = r p | ||
158 | -- l = l p | ||
159 | -- in p : inRange r | ||
160 | -- where inRange x = x >= 1 && x <= 8 | ||
161 | -- inRange' (x,y) = inRange (x) && inRange (y) | ||
162 | -- r x = (fst x + 1, snd x + 1) | ||
163 | -- l x = (fst x - 1, snd x - 1) | ||
164 | -- nexts x = diags' x | ||
165 | -- diags' x = [(fst x - 1, snd x -1), (fst x + 1, snd x + 1)] | ||
166 | -- -- down x = (fst x - 1, snd x - 1) | ||
167 | -- -- down (r,c) = let d = (r-1,c-1) in if inRange d then d : down d else | ||
168 | -- -- up (r,c) = let u = (r+1,c+1) in u : up u | ||
169 | |||
170 | |||
171 | --mapDiag r c = undefined | ||
172 | |||
173 | --placeAll = repeat 8 placeQueen | ||
174 | |||
175 | winnable = undefined | ||
176 | |||
177 | nextOpen board = undefined | ||
178 | |||
179 | -- placeQueen r c = | ||
180 | |||
181 | --b = getE | ||
182 | |||
183 | --placeQueen r c b = b ^. | ||
184 | |||
185 | -- rand = do | ||
186 | -- g <- newStdGen | ||
187 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
188 | |||
189 | |||
190 | -- try r c = let next b = placeQueen r c b | ||
191 | -- in next initBoard | ||
192 | |||
193 | -- try' p = let next b = p b | ||
194 | -- in next initBoard | ||
195 | |||
196 | |||
197 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
198 | |||
199 | main :: IO () | ||
200 | main = do | ||
201 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero26587qlB-TEMP.hs b/.stack-work/intero/intero26587qlB-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero26587qlB-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero30739dbu-STAGING.hs b/.stack-work/intero/intero30739dbu-STAGING.hs deleted file mode 100644 index c0b9790..0000000 --- a/.stack-work/intero/intero30739dbu-STAGING.hs +++ /dev/null | |||
@@ -1,127 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | --import Numeric.LinearAlgebra | ||
8 | import System.Random | ||
9 | import Foreign.Storable | ||
10 | |||
11 | |||
12 | data Square = X -- Attacked | ||
13 | | Qu -- Queen | ||
14 | | O -- Open/available | ||
15 | deriving (Show, Eq) | ||
16 | |||
17 | |||
18 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
19 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
20 | |||
21 | lo8 = [0..8] -- list of 8 | ||
22 | initBoard = matrix 8 8 $ \_ -> O | ||
23 | |||
24 | placeQueen (r,c) b = placeQueen' $ markAttacked b | ||
25 | where | ||
26 | placeQueen' b = setElem Qu (r,c) b | ||
27 | markAttacked b = rowAttacked $ colAttacked $ diagAttacked b | ||
28 | fX = (\_ x -> X) | ||
29 | rowAttacked b = mapRow fX r b | ||
30 | colAttacked b = mapCol fX c b | ||
31 | diagAttacked b = let d = diag r c | ||
32 | attack ap ab = setElem X ap ab | ||
33 | attackall [x] = attack x b | ||
34 | attackall (x:xs) = attack x (attackall xs) | ||
35 | in attackall d | ||
36 | -- in last $ map (\p -> setElem X p b) d | ||
37 | -- in last $ scanr (\p -> setElem X p) b | ||
38 | |||
39 | --solve b = placeQueen (nextAvail b) b | ||
40 | |||
41 | nextAvail b = head [(x,y) | x <- [1..8], y <- [1..8], b ! (x,y) == O] | ||
42 | |||
43 | solve b = solve $ placeQueen n b | ||
44 | where n = nextAvail b | ||
45 | |||
46 | |||
47 | --diag r c = [(x,y) | x <- [1..8], y <- [1..8], (abs x-y) == 1 ] | ||
48 | diag r c = let rl = [1..r] | ||
49 | rr = [r..8] | ||
50 | cu = [1..c] | ||
51 | cd = [c..8] | ||
52 | in zip rl cu ++ zip rr cd ++ | ||
53 | zip (reverse rl) cd ++ zip (reverse rr) cu | ||
54 | |||
55 | |||
56 | |||
57 | |||
58 | -- diag (r,c) b = | ||
59 | -- where l = (r-1,c-1) | ||
60 | -- r = (r+1,c+1) | ||
61 | -- lowbound = 1 | ||
62 | -- highbound = 8 | ||
63 | |||
64 | |||
65 | --initBoard = (8><8) $ repeat O | ||
66 | |||
67 | --firstOpen b = take 1 [(r,c)| r <- [1..8], c <- [1..8], b ! (r,c) == O] | ||
68 | |||
69 | -- firstOpen b = let | ||
70 | -- elem x y = b ! (x, y) | ||
71 | -- in map | ||
72 | |||
73 | -- nextOpen b = | ||
74 | |||
75 | -- solve = let board = initBoard | ||
76 | |||
77 | --avail r c b = | ||
78 | |||
79 | --rowOccupied r b = any (== Q) $ getRow r b | ||
80 | |||
81 | |||
82 | |||
83 | -- diags p = let r = r p | ||
84 | -- l = l p | ||
85 | -- in p : inRange r | ||
86 | -- where inRange x = x >= 1 && x <= 8 | ||
87 | -- inRange' (x,y) = inRange (x) && inRange (y) | ||
88 | -- r x = (fst x + 1, snd x + 1) | ||
89 | -- l x = (fst x - 1, snd x - 1) | ||
90 | -- nexts x = diags' x | ||
91 | -- diags' x = [(fst x - 1, snd x -1), (fst x + 1, snd x + 1)] | ||
92 | -- -- down x = (fst x - 1, snd x - 1) | ||
93 | -- -- down (r,c) = let d = (r-1,c-1) in if inRange d then d : down d else | ||
94 | -- -- up (r,c) = let u = (r+1,c+1) in u : up u | ||
95 | |||
96 | |||
97 | --mapDiag r c = undefined | ||
98 | |||
99 | --placeAll = repeat 8 placeQueen | ||
100 | |||
101 | winnable = undefined | ||
102 | |||
103 | nextOpen board = undefined | ||
104 | |||
105 | -- placeQueen r c = | ||
106 | |||
107 | --b = getE | ||
108 | |||
109 | --placeQueen r c b = b ^. | ||
110 | |||
111 | -- rand = do | ||
112 | -- g <- newStdGen | ||
113 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
114 | |||
115 | |||
116 | -- try r c = let next b = placeQueen r c b | ||
117 | -- in next initBoard | ||
118 | |||
119 | -- try' p = let next b = p b | ||
120 | -- in next initBoard | ||
121 | |||
122 | |||
123 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
124 | |||
125 | main :: IO () | ||
126 | main = do | ||
127 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero30739ql0-TEMP.hs b/.stack-work/intero/intero30739ql0-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero30739ql0-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero31583k6i-STAGING.hs b/.stack-work/intero/intero31583k6i-STAGING.hs deleted file mode 100644 index c020aed..0000000 --- a/.stack-work/intero/intero31583k6i-STAGING.hs +++ /dev/null | |||
@@ -1,127 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | --import Numeric.LinearAlgebra | ||
8 | import System.Random | ||
9 | import Foreign.Storable | ||
10 | |||
11 | |||
12 | data Square = X -- Attacked | ||
13 | | Qu -- Queen | ||
14 | | O -- Open/available | ||
15 | deriving (Show, Eq) | ||
16 | |||
17 | |||
18 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
19 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
20 | |||
21 | lo8 = [0..8] -- list of 8 | ||
22 | initBoard = matrix 8 8 $ \_ -> O | ||
23 | |||
24 | placeQueen (r,c) b = placeQueen' $ markAttacked b | ||
25 | where | ||
26 | placeQueen' b = setElem Qu (r,c) b | ||
27 | markAttacked b = rowAttacked $ colAttacked $ diagAttacked b | ||
28 | fX = (\_ x -> X) | ||
29 | rowAttacked b = mapRow fX r b | ||
30 | colAttacked b = mapCol fX c b | ||
31 | diagAttacked b = let d = diag r c | ||
32 | attack ap ab = setElem X ap ab | ||
33 | attackall [x] = attack x b | ||
34 | attackall (x:xs) = attack x (attackall xs) | ||
35 | in attackall d | ||
36 | -- in last $ map (\p -> setElem X p b) d | ||
37 | -- in last $ scanr (\p -> setElem X p) b | ||
38 | |||
39 | --solve b = placeQueen (nextAvail b) b | ||
40 | |||
41 | nextAvail b = head [(x,y) | x <- [1..8], y <- [1..8], b ! (x,y) == O] | ||
42 | |||
43 | solve b = solve $ solve $ solve $ placeQueen n b | ||
44 | where n = nextAvail b | ||
45 | |||
46 | |||
47 | --diag r c = [(x,y) | x <- [1..8], y <- [1..8], (abs x-y) == 1 ] | ||
48 | diag r c = let rl = [1..r] | ||
49 | rr = [r..8] | ||
50 | cu = [1..c] | ||
51 | cd = [c..8] | ||
52 | in zip rl cu ++ zip rr cd ++ | ||
53 | zip (reverse rl) cd ++ zip (reverse rr) cu | ||
54 | |||
55 | |||
56 | |||
57 | |||
58 | -- diag (r,c) b = | ||
59 | -- where l = (r-1,c-1) | ||
60 | -- r = (r+1,c+1) | ||
61 | -- lowbound = 1 | ||
62 | -- highbound = 8 | ||
63 | |||
64 | |||
65 | --initBoard = (8><8) $ repeat O | ||
66 | |||
67 | --firstOpen b = take 1 [(r,c)| r <- [1..8], c <- [1..8], b ! (r,c) == O] | ||
68 | |||
69 | -- firstOpen b = let | ||
70 | -- elem x y = b ! (x, y) | ||
71 | -- in map | ||
72 | |||
73 | -- nextOpen b = | ||
74 | |||
75 | -- solve = let board = initBoard | ||
76 | |||
77 | --avail r c b = | ||
78 | |||
79 | --rowOccupied r b = any (== Q) $ getRow r b | ||
80 | |||
81 | |||
82 | |||
83 | -- diags p = let r = r p | ||
84 | -- l = l p | ||
85 | -- in p : inRange r | ||
86 | -- where inRange x = x >= 1 && x <= 8 | ||
87 | -- inRange' (x,y) = inRange (x) && inRange (y) | ||
88 | -- r x = (fst x + 1, snd x + 1) | ||
89 | -- l x = (fst x - 1, snd x - 1) | ||
90 | -- nexts x = diags' x | ||
91 | -- diags' x = [(fst x - 1, snd x -1), (fst x + 1, snd x + 1)] | ||
92 | -- -- down x = (fst x - 1, snd x - 1) | ||
93 | -- -- down (r,c) = let d = (r-1,c-1) in if inRange d then d : down d else | ||
94 | -- -- up (r,c) = let u = (r+1,c+1) in u : up u | ||
95 | |||
96 | |||
97 | --mapDiag r c = undefined | ||
98 | |||
99 | --placeAll = repeat 8 placeQueen | ||
100 | |||
101 | winnable = undefined | ||
102 | |||
103 | nextOpen board = undefined | ||
104 | |||
105 | -- placeQueen r c = | ||
106 | |||
107 | --b = getE | ||
108 | |||
109 | --placeQueen r c b = b ^. | ||
110 | |||
111 | -- rand = do | ||
112 | -- g <- newStdGen | ||
113 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
114 | |||
115 | |||
116 | -- try r c = let next b = placeQueen r c b | ||
117 | -- in next initBoard | ||
118 | |||
119 | -- try' p = let next b = p b | ||
120 | -- in next initBoard | ||
121 | |||
122 | |||
123 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
124 | |||
125 | main :: IO () | ||
126 | main = do | ||
127 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero31583xEp-TEMP.hs b/.stack-work/intero/intero31583xEp-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero31583xEp-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero38150Eh-TEMP.hs b/.stack-work/intero/intero38150Eh-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero38150Eh-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero3815n6a-STAGING.hs b/.stack-work/intero/intero3815n6a-STAGING.hs deleted file mode 100644 index 5f6fce5..0000000 --- a/.stack-work/intero/intero3815n6a-STAGING.hs +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | import System.Random | ||
8 | |||
9 | data Square = X -- Attacked | ||
10 | | Qu -- Queen | ||
11 | | O -- Open/available | ||
12 | deriving (Show) | ||
13 | |||
14 | |||
15 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
16 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
17 | |||
18 | lo8 = [0..8] -- list of 8 | ||
19 | initBoard = matrix 8 8 $ \_ -> O | ||
20 | |||
21 | firstOpen b = let | ||
22 | elem x y = b ! (x, y) | ||
23 | in map | ||
24 | |||
25 | nextOpen b = | ||
26 | |||
27 | solve = let board = initBoard | ||
28 | |||
29 | --avail r c b = | ||
30 | |||
31 | --rowOccupied r b = any (== Q) $ getRow r b | ||
32 | -- placeQueen r c b = board | ||
33 | -- where | ||
34 | -- fX = (\ _ -> X) | ||
35 | -- rowAttacked = mapRow fX r | ||
36 | -- colAttacked = mapCol fx c | ||
37 | -- queen = setElem Qu (r,c) b | ||
38 | |||
39 | --placeAll = repeat 8 placeQueen | ||
40 | |||
41 | winnable = undefined | ||
42 | |||
43 | nextOpen board = undefined | ||
44 | |||
45 | solve = undefined | ||
46 | |||
47 | -- placeQueen r c = | ||
48 | |||
49 | --b = getE | ||
50 | |||
51 | --placeQueen r c b = b ^. | ||
52 | |||
53 | -- rand = do | ||
54 | -- g <- newStdGen | ||
55 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
56 | |||
57 | |||
58 | -- try r c = let next b = placeQueen r c b | ||
59 | -- in next initBoard | ||
60 | |||
61 | -- try' p = let next b = p b | ||
62 | -- in next initBoard | ||
63 | |||
64 | |||
65 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
66 | |||
67 | main :: IO () | ||
68 | main = do | ||
69 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero4078i3Z-STAGING.hs b/.stack-work/intero/intero4078i3Z-STAGING.hs deleted file mode 100644 index 15be3ec..0000000 --- a/.stack-work/intero/intero4078i3Z-STAGING.hs +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | import System.Random | ||
8 | |||
9 | data Square = X | Qu | O deriving (Show) | ||
10 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
11 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
12 | |||
13 | lo8 = [0..8] -- list of 8 | ||
14 | initBoard = matrix 8 8 $ \_ -> O | ||
15 | --avail r c b = | ||
16 | |||
17 | --rowOccupied r b = any (== Q) $ getRow r b | ||
18 | placeQueen r c b = board | ||
19 | where | ||
20 | fX = (\ _ -> X) | ||
21 | rowAttacked = mapRow fX r | ||
22 | colAttacked = mapCol fx c | ||
23 | queen = setElem Qu (r,c) b | ||
24 | |||
25 | --placeAll = repeat 8 placeQueen | ||
26 | |||
27 | winnable = undefined | ||
28 | |||
29 | nextOpen board = | ||
30 | |||
31 | solve = | ||
32 | |||
33 | -- placeQueen r c = | ||
34 | |||
35 | --b = getE | ||
36 | |||
37 | --placeQueen r c b = b ^. | ||
38 | |||
39 | -- rand = do | ||
40 | -- g <- newStdGen | ||
41 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
42 | |||
43 | |||
44 | -- try r c = let next b = placeQueen r c b | ||
45 | -- in next initBoard | ||
46 | |||
47 | -- try' p = let next b = p b | ||
48 | -- in next initBoard | ||
49 | |||
50 | |||
51 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
52 | |||
53 | main :: IO () | ||
54 | main = do | ||
55 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero4078vBg-TEMP.hs b/.stack-work/intero/intero4078vBg-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero4078vBg-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero5164dbY-STAGING.hs b/.stack-work/intero/intero5164dbY-STAGING.hs deleted file mode 100644 index 820de4e..0000000 --- a/.stack-work/intero/intero5164dbY-STAGING.hs +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | import System.Random | ||
8 | |||
9 | data Square = X | Q deriving (Show) | ||
10 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
11 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
12 | |||
13 | lo8 = [0..8] -- list of 8 | ||
14 | initBoard = matrix 8 8 $ \_ -> X | ||
15 | --avail r c b = | ||
16 | |||
17 | --rowOccupied r b = any (== Q) $ getRow r b | ||
18 | placeQueen r c b = setElem Q (r,c) b | ||
19 | |||
20 | --placeAll = repeat 8 placeQueen | ||
21 | |||
22 | winnable = undefined | ||
23 | |||
24 | -- placeQueen r c = | ||
25 | |||
26 | --b = getE | ||
27 | |||
28 | --placeQueen r c b = b ^. | ||
29 | |||
30 | -- rand = do | ||
31 | -- g <- newStdGen | ||
32 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
33 | |||
34 | |||
35 | -- try r c = let next b = placeQueen r c b | ||
36 | -- in next initBoard | ||
37 | |||
38 | -- try' p = let next b = p b | ||
39 | -- in next initBoard | ||
40 | |||
41 | |||
42 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
43 | |||
44 | main :: IO () | ||
45 | main = do | ||
46 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero5164qle-TEMP.hs b/.stack-work/intero/intero5164qle-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero5164qle-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/intero/intero7513Owo-STAGING.hs b/.stack-work/intero/intero7513Owo-STAGING.hs deleted file mode 100644 index f3b0098..0000000 --- a/.stack-work/intero/intero7513Owo-STAGING.hs +++ /dev/null | |||
@@ -1,152 +0,0 @@ | |||
1 | module Main where | ||
2 | |||
3 | import Control.Lens | ||
4 | import Linear.V2 | ||
5 | import Linear.V3 | ||
6 | import Data.Matrix | ||
7 | --import Numeric.LinearAlgebra | ||
8 | import System.Random | ||
9 | import Foreign.Storable | ||
10 | |||
11 | |||
12 | data Square = X -- Attacked | ||
13 | | Qu -- Queen | ||
14 | | O -- Open/available | ||
15 | deriving (Show, Eq) | ||
16 | |||
17 | |||
18 | --board = V3 <$> [0..8] <*> [0..8] <*> [0] | ||
19 | --board = [(r,c,X) | r <- [0..8], c <- [0..8] ] | ||
20 | |||
21 | lo8 = [0..8] -- list of 8 | ||
22 | initBoard = matrix 8 8 $ \_ -> O | ||
23 | |||
24 | placeQueen (r,c) b = placeQueen' $ markAttacked b | ||
25 | where | ||
26 | placeQueen' b = setElem Qu (r,c) b | ||
27 | markAttacked b = rowAttacked $ colAttacked $ diagAttacked b | ||
28 | fX = (\_ x -> X) | ||
29 | rowAttacked b = mapRow fX r b | ||
30 | colAttacked b = mapCol fX c b | ||
31 | diagAttacked b = let d = diag r c | ||
32 | attack ap ab = setElem X ap ab | ||
33 | attackall [x] = attack x b | ||
34 | attackall (x:xs) = attack x (attackall xs) | ||
35 | in attackall d | ||
36 | -- in last $ map (\p -> setElem X p b) d | ||
37 | -- in last $ scanr (\p -> setElem X p) b | ||
38 | |||
39 | --solve b = placeQueen (nextAvail b) b | ||
40 | |||
41 | nextAvail b = head [(x,y) | x <- [1..8], y <- [1..8], b ! (x,y) == O] | ||
42 | |||
43 | -- solve b = placeQueen n | ||
44 | -- where n = nextAvail b | ||
45 | -- next = placeQueen n | ||
46 | -- solve' = | ||
47 | |||
48 | -- solve b = | ||
49 | -- where solve' b = (\n = placeQueen $ nextAvail b) | ||
50 | |||
51 | solve b = second | ||
52 | where first = placeQueen (nextAvail b) b | ||
53 | second = placeQueen (nextAvail first) first | ||
54 | |||
55 | solve' b = s (nA b) b | ||
56 | where s n b = placeQueen n b | ||
57 | nA b = nextAvail b | ||
58 | |||
59 | |||
60 | --diag r c = [(x,y) | x <- [1..8], y <- [1..8], (abs x-y) == 1 ] | ||
61 | diag r c = let rl = [1..r] | ||
62 | rr = [r..8] | ||
63 | cu = [1..c] | ||
64 | cd = [c..8] | ||
65 | in zip rl cu ++ zip rr cd ++ | ||
66 | zip (reverse rl) cd ++ zip (reverse rr) cu | ||
67 | |||
68 | diag' p = where | ||
69 | maxB = 8 | ||
70 | minB = 1 | ||
71 | u = (+1) | ||
72 | d = (-1) | ||
73 | r = u | ||
74 | l = d | ||
75 | ur = (u fst, r snd) | ||
76 | ul = (u fst, l snd) | ||
77 | dr = (d fst, r snd) | ||
78 | dl = (d fst, l snd) | ||
79 | |||
80 | |||
81 | |||
82 | |||
83 | -- diag (r,c) b = | ||
84 | -- where l = (r-1,c-1) | ||
85 | -- r = (r+1,c+1) | ||
86 | -- lowbound = 1 | ||
87 | -- highbound = 8 | ||
88 | |||
89 | |||
90 | --initBoard = (8><8) $ repeat O | ||
91 | |||
92 | --firstOpen b = take 1 [(r,c)| r <- [1..8], c <- [1..8], b ! (r,c) == O] | ||
93 | |||
94 | -- firstOpen b = let | ||
95 | -- elem x y = b ! (x, y) | ||
96 | -- in map | ||
97 | |||
98 | -- nextOpen b = | ||
99 | |||
100 | -- solve = let board = initBoard | ||
101 | |||
102 | --avail r c b = | ||
103 | |||
104 | --rowOccupied r b = any (== Q) $ getRow r b | ||
105 | |||
106 | |||
107 | |||
108 | -- diags p = let r = r p | ||
109 | -- l = l p | ||
110 | -- in p : inRange r | ||
111 | -- where inRange x = x >= 1 && x <= 8 | ||
112 | -- inRange' (x,y) = inRange (x) && inRange (y) | ||
113 | -- r x = (fst x + 1, snd x + 1) | ||
114 | -- l x = (fst x - 1, snd x - 1) | ||
115 | -- nexts x = diags' x | ||
116 | -- diags' x = [(fst x - 1, snd x -1), (fst x + 1, snd x + 1)] | ||
117 | -- -- down x = (fst x - 1, snd x - 1) | ||
118 | -- -- down (r,c) = let d = (r-1,c-1) in if inRange d then d : down d else | ||
119 | -- -- up (r,c) = let u = (r+1,c+1) in u : up u | ||
120 | |||
121 | |||
122 | --mapDiag r c = undefined | ||
123 | |||
124 | --placeAll = repeat 8 placeQueen | ||
125 | |||
126 | winnable = undefined | ||
127 | |||
128 | nextOpen board = undefined | ||
129 | |||
130 | -- placeQueen r c = | ||
131 | |||
132 | --b = getE | ||
133 | |||
134 | --placeQueen r c b = b ^. | ||
135 | |||
136 | -- rand = do | ||
137 | -- g <- newStdGen | ||
138 | -- print $ take 8 $ (randomRs (0, 8) g) | ||
139 | |||
140 | |||
141 | -- try r c = let next b = placeQueen r c b | ||
142 | -- in next initBoard | ||
143 | |||
144 | -- try' p = let next b = p b | ||
145 | -- in next initBoard | ||
146 | |||
147 | |||
148 | --res = [ try x y | x <- lo8, y <- lo8 ] | ||
149 | |||
150 | main :: IO () | ||
151 | main = do | ||
152 | putStrLn "Hi" | ||
diff --git a/.stack-work/intero/intero7513b6u-TEMP.hs b/.stack-work/intero/intero7513b6u-TEMP.hs deleted file mode 100644 index e69de29..0000000 --- a/.stack-work/intero/intero7513b6u-TEMP.hs +++ /dev/null | |||
diff --git a/.stack-work/logs/Cabal-2.4.1.0.log b/.stack-work/logs/Cabal-2.4.1.0.log deleted file mode 100644 index 1cf42e5..0000000 --- a/.stack-work/logs/Cabal-2.4.1.0.log +++ /dev/null | |||
@@ -1,225 +0,0 @@ | |||
1 | Configuring Cabal-2.4.1.0... | ||
2 | Preprocessing library for Cabal-2.4.1.0.. | ||
3 | Building library for Cabal-2.4.1.0.. | ||
4 | [ 1 of 220] Compiling Distribution.Compat.Binary ( Distribution/Compat/Binary.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Binary.o ) | ||
5 | [ 2 of 220] Compiling Distribution.Compat.Directory ( Distribution/Compat/Directory.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Directory.o ) | ||
6 | [ 3 of 220] Compiling Distribution.Compat.Exception ( Distribution/Compat/Exception.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Exception.o ) | ||
7 | [ 4 of 220] Compiling Distribution.Compat.Internal.TempFile ( Distribution/Compat/Internal/TempFile.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Internal/TempFile.o ) | ||
8 | [ 5 of 220] Compiling Distribution.Compat.MonadFail ( Distribution/Compat/MonadFail.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/MonadFail.o ) | ||
9 | [ 6 of 220] Compiling Distribution.Compat.Newtype ( Distribution/Compat/Newtype.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Newtype.o ) | ||
10 | [ 7 of 220] Compiling Distribution.Compat.Semigroup ( Distribution/Compat/Semigroup.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Semigroup.o ) | ||
11 | [ 8 of 220] Compiling Distribution.Compat.Stack ( Distribution/Compat/Stack.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Stack.o ) | ||
12 | [ 9 of 220] Compiling Distribution.Compat.Prelude ( Distribution/Compat/Prelude.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Prelude.o ) | ||
13 | [ 10 of 220] Compiling Distribution.Compat.SnocList ( Distribution/Compat/SnocList.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/SnocList.o ) | ||
14 | [ 11 of 220] Compiling Distribution.Compat.ReadP ( Distribution/Compat/ReadP.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/ReadP.o ) | ||
15 | [ 12 of 220] Compiling Distribution.Compat.Prelude.Internal ( Distribution/Compat/Prelude/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Prelude/Internal.o ) | ||
16 | [ 13 of 220] Compiling Distribution.Compat.Parsing ( Distribution/Compat/Parsing.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Parsing.o ) | ||
17 | [ 14 of 220] Compiling Distribution.Compat.Graph ( Distribution/Compat/Graph.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Graph.o ) | ||
18 | [ 15 of 220] Compiling Distribution.Compat.GetShortPathName ( Distribution/Compat/GetShortPathName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/GetShortPathName.o ) | ||
19 | [ 16 of 220] Compiling Distribution.Compat.DList ( Distribution/Compat/DList.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/DList.o ) | ||
20 | [ 17 of 220] Compiling Distribution.Compat.Lens ( Distribution/Compat/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Lens.o ) | ||
21 | [ 18 of 220] Compiling Distribution.Compat.CopyFile ( Distribution/Compat/CopyFile.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/CopyFile.o ) | ||
22 | [ 19 of 220] Compiling Distribution.Compat.CharParsing ( Distribution/Compat/CharParsing.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/CharParsing.o ) | ||
23 | [ 20 of 220] Compiling Distribution.CabalSpecVersion ( Distribution/CabalSpecVersion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/CabalSpecVersion.o ) | ||
24 | [ 21 of 220] Compiling Distribution.Compat.Environment ( Distribution/Compat/Environment.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Environment.o ) | ||
25 | [ 22 of 220] Compiling Distribution.Compat.CreatePipe ( Distribution/Compat/CreatePipe.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/CreatePipe.o ) | ||
26 | [ 23 of 220] Compiling Distribution.GetOpt ( Distribution/GetOpt.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/GetOpt.o ) | ||
27 | [ 24 of 220] Compiling Distribution.Lex ( Distribution/Lex.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Lex.o ) | ||
28 | [ 25 of 220] Compiling Distribution.PackageDescription.Quirks ( Distribution/PackageDescription/Quirks.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/Quirks.o ) | ||
29 | [ 26 of 220] Compiling Distribution.PackageDescription.Utils ( Distribution/PackageDescription/Utils.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/Utils.o ) | ||
30 | [ 27 of 220] Compiling Distribution.Parsec.Common ( Distribution/Parsec/Common.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/Common.o ) | ||
31 | [ 28 of 220] Compiling Distribution.Parsec.Field ( Distribution/Parsec/Field.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/Field.o ) | ||
32 | [ 29 of 220] Compiling Distribution.Parsec.LexerMonad ( Distribution/Parsec/LexerMonad.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/LexerMonad.o ) | ||
33 | [ 30 of 220] Compiling Distribution.Parsec.Lexer ( Distribution/Parsec/Lexer.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/Lexer.o ) | ||
34 | [ 31 of 220] Compiling Distribution.Parsec.Parser ( Distribution/Parsec/Parser.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/Parser.o ) | ||
35 | [ 32 of 220] Compiling Distribution.Pretty ( Distribution/Pretty.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Pretty.o ) | ||
36 | [ 33 of 220] Compiling Distribution.SPDX.LicenseListVersion ( Distribution/SPDX/LicenseListVersion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX/LicenseListVersion.o ) | ||
37 | [ 34 of 220] Compiling Distribution.Simple.CCompiler ( Distribution/Simple/CCompiler.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/CCompiler.o ) | ||
38 | [ 35 of 220] Compiling Distribution.Simple.Flag ( Distribution/Simple/Flag.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Flag.o ) | ||
39 | [ 36 of 220] Compiling Distribution.Simple.PreProcess.Unlit ( Distribution/Simple/PreProcess/Unlit.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/PreProcess/Unlit.o ) | ||
40 | [ 37 of 220] Compiling Distribution.Simple.Program.Internal ( Distribution/Simple/Program/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Internal.o ) | ||
41 | [ 38 of 220] Compiling Distribution.TestSuite ( Distribution/TestSuite.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/TestSuite.o ) | ||
42 | [ 39 of 220] Compiling Distribution.Types.Condition ( Distribution/Types/Condition.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Condition.o ) | ||
43 | [ 40 of 220] Compiling Distribution.Types.CondTree ( Distribution/Types/CondTree.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/CondTree.o ) | ||
44 | [ 41 of 220] Compiling Distribution.Utils.Base62 ( Distribution/Utils/Base62.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/Base62.o ) | ||
45 | [ 42 of 220] Compiling Distribution.Utils.IOData ( Distribution/Utils/IOData.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/IOData.o ) | ||
46 | [ 43 of 220] Compiling Distribution.Utils.MapAccum ( Distribution/Utils/MapAccum.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/MapAccum.o ) | ||
47 | [ 44 of 220] Compiling Distribution.Utils.Progress ( Distribution/Utils/Progress.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/Progress.o ) | ||
48 | [ 45 of 220] Compiling Distribution.Utils.String ( Distribution/Utils/String.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/String.o ) | ||
49 | [ 46 of 220] Compiling Distribution.Utils.ShortText ( Distribution/Utils/ShortText.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/ShortText.o ) | ||
50 | [ 47 of 220] Compiling Distribution.Utils.Generic ( Distribution/Utils/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/Generic.o ) | ||
51 | [ 48 of 220] Compiling Distribution.Parsec.FieldLineStream ( Distribution/Parsec/FieldLineStream.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/FieldLineStream.o ) | ||
52 | [ 49 of 220] Compiling Distribution.Parsec.Class ( Distribution/Parsec/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/Class.o ) | ||
53 | [ 50 of 220] Compiling Distribution.Text ( Distribution/Text.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Text.o ) | ||
54 | [ 51 of 220] Compiling Distribution.Types.Version ( Distribution/Types/Version.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Version.o ) | ||
55 | [ 52 of 220] Compiling Distribution.Types.VersionRange ( Distribution/Types/VersionRange.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/VersionRange.o ) | ||
56 | [ 53 of 220] Compiling Distribution.Types.VersionInterval ( Distribution/Types/VersionInterval.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/VersionInterval.o ) | ||
57 | [ 54 of 220] Compiling Distribution.Types.SourceRepo ( Distribution/Types/SourceRepo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/SourceRepo.o ) | ||
58 | [ 55 of 220] Compiling Distribution.Types.SourceRepo.Lens ( Distribution/Types/SourceRepo/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/SourceRepo/Lens.o ) | ||
59 | [ 56 of 220] Compiling Distribution.Types.PkgconfigName ( Distribution/Types/PkgconfigName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PkgconfigName.o ) | ||
60 | [ 57 of 220] Compiling Distribution.Types.ForeignLibType ( Distribution/Types/ForeignLibType.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ForeignLibType.o ) | ||
61 | [ 58 of 220] Compiling Distribution.Types.ForeignLibOption ( Distribution/Types/ForeignLibOption.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ForeignLibOption.o ) | ||
62 | [ 59 of 220] Compiling Distribution.Types.ExecutableScope ( Distribution/Types/ExecutableScope.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ExecutableScope.o ) | ||
63 | [ 60 of 220] Compiling Distribution.Types.ComponentId ( Distribution/Types/ComponentId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ComponentId.o ) | ||
64 | [ 61 of 220] Compiling Distribution.Types.BuildType ( Distribution/Types/BuildType.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/BuildType.o ) | ||
65 | [ 62 of 220] Compiling Distribution.Types.AbiHash ( Distribution/Types/AbiHash.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/AbiHash.o ) | ||
66 | [ 63 of 220] Compiling Distribution.System ( Distribution/System.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/System.o ) | ||
67 | [ 64 of 220] Compiling Distribution.SPDX.LicenseReference ( Distribution/SPDX/LicenseReference.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX/LicenseReference.o ) | ||
68 | [ 65 of 220] Compiling Distribution.SPDX.LicenseId ( Distribution/SPDX/LicenseId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX/LicenseId.o ) | ||
69 | [ 66 of 220] Compiling Distribution.SPDX.LicenseExceptionId ( Distribution/SPDX/LicenseExceptionId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX/LicenseExceptionId.o ) | ||
70 | [ 67 of 220] Compiling Distribution.SPDX.LicenseExpression ( Distribution/SPDX/LicenseExpression.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX/LicenseExpression.o ) | ||
71 | [ 68 of 220] Compiling Distribution.SPDX.License ( Distribution/SPDX/License.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX/License.o ) | ||
72 | [ 69 of 220] Compiling Distribution.SPDX ( Distribution/SPDX.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/SPDX.o ) | ||
73 | [ 70 of 220] Compiling Distribution.ReadE ( Distribution/ReadE.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/ReadE.o ) | ||
74 | [ 71 of 220] Compiling Distribution.ModuleName ( Distribution/ModuleName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/ModuleName.o ) | ||
75 | [ 72 of 220] Compiling Distribution.Types.ModuleRenaming ( Distribution/Types/ModuleRenaming.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ModuleRenaming.o ) | ||
76 | [ 73 of 220] Compiling Distribution.Types.IncludeRenaming ( Distribution/Types/IncludeRenaming.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/IncludeRenaming.o ) | ||
77 | [ 74 of 220] Compiling Distribution.FieldGrammar.Class ( Distribution/FieldGrammar/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/FieldGrammar/Class.o ) | ||
78 | [ 75 of 220] Compiling Distribution.Utils.UnionFind ( Distribution/Utils/UnionFind.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/UnionFind.o ) | ||
79 | [ 76 of 220] Compiling Distribution.Verbosity ( Distribution/Verbosity.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Verbosity.o ) | ||
80 | [ 77 of 220] Compiling Distribution.Version ( Distribution/Version.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Version.o ) | ||
81 | [ 78 of 220] Compiling Distribution.Types.TestType ( Distribution/Types/TestType.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/TestType.o ) | ||
82 | [ 79 of 220] Compiling Distribution.Types.TestSuiteInterface ( Distribution/Types/TestSuiteInterface.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/TestSuiteInterface.o ) | ||
83 | [ 80 of 220] Compiling Distribution.Types.PkgconfigDependency ( Distribution/Types/PkgconfigDependency.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PkgconfigDependency.o ) | ||
84 | [ 81 of 220] Compiling Distribution.Types.BenchmarkType ( Distribution/Types/BenchmarkType.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/BenchmarkType.o ) | ||
85 | [ 82 of 220] Compiling Distribution.Types.BenchmarkInterface ( Distribution/Types/BenchmarkInterface.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/BenchmarkInterface.o ) | ||
86 | [ 83 of 220] Compiling Distribution.License ( Distribution/License.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/License.o ) | ||
87 | [ 84 of 220] Compiling Language.Haskell.Extension ( Language/Haskell/Extension.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Language/Haskell/Extension.o ) | ||
88 | [ 85 of 220] Compiling Distribution.Compiler ( Distribution/Compiler.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compiler.o ) | ||
89 | [ 86 of 220] Compiling Distribution.Parsec.Newtypes ( Distribution/Parsec/Newtypes.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/Newtypes.o ) | ||
90 | [ 87 of 220] Compiling Distribution.ParseUtils ( Distribution/ParseUtils.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/ParseUtils.o ) | ||
91 | [ 88 of 220] Compiling Distribution.Types.PackageName ( Distribution/Types/PackageName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PackageName.o ) | ||
92 | [ 89 of 220] Compiling Distribution.Types.UnqualComponentName ( Distribution/Types/UnqualComponentName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/UnqualComponentName.o ) | ||
93 | [ 90 of 220] Compiling Distribution.Types.ComponentName ( Distribution/Types/ComponentName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ComponentName.o ) | ||
94 | [ 91 of 220] Compiling Distribution.Types.PackageId ( Distribution/Types/PackageId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PackageId.o ) | ||
95 | [ 92 of 220] Compiling Distribution.Types.UnitId ( Distribution/Types/UnitId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/UnitId.o ) | ||
96 | [ 93 of 220] Compiling Distribution.Types.Module ( Distribution/Types/Module.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Module.o ) | ||
97 | [ 94 of 220] Compiling Distribution.Backpack ( Distribution/Backpack.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack.o ) | ||
98 | [ 95 of 220] Compiling Distribution.Backpack.ModSubst ( Distribution/Backpack/ModSubst.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/ModSubst.o ) | ||
99 | [ 96 of 220] Compiling Distribution.Backpack.FullUnitId ( Distribution/Backpack/FullUnitId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/FullUnitId.o ) | ||
100 | [ 97 of 220] Compiling Distribution.Types.PackageId.Lens ( Distribution/Types/PackageId/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PackageId/Lens.o ) | ||
101 | [ 98 of 220] Compiling Distribution.Types.ModuleReexport ( Distribution/Types/ModuleReexport.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ModuleReexport.o ) | ||
102 | [ 99 of 220] Compiling Distribution.Types.Mixin ( Distribution/Types/Mixin.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Mixin.o ) | ||
103 | [100 of 220] Compiling Distribution.Types.ExeDependency ( Distribution/Types/ExeDependency.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ExeDependency.o ) | ||
104 | [101 of 220] Compiling Distribution.Types.Dependency ( Distribution/Types/Dependency.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Dependency.o ) | ||
105 | [102 of 220] Compiling Distribution.Types.SetupBuildInfo ( Distribution/Types/SetupBuildInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/SetupBuildInfo.o ) | ||
106 | [103 of 220] Compiling Distribution.Types.SetupBuildInfo.Lens ( Distribution/Types/SetupBuildInfo/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/SetupBuildInfo/Lens.o ) | ||
107 | [104 of 220] Compiling Distribution.Types.DependencyMap ( Distribution/Types/DependencyMap.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/DependencyMap.o ) | ||
108 | [105 of 220] Compiling Distribution.Backpack.ModuleScope ( Distribution/Backpack/ModuleScope.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/ModuleScope.o ) | ||
109 | [106 of 220] Compiling Distribution.Types.MungedPackageName ( Distribution/Types/MungedPackageName.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/MungedPackageName.o ) | ||
110 | [107 of 220] Compiling Distribution.Types.MungedPackageId ( Distribution/Types/MungedPackageId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/MungedPackageId.o ) | ||
111 | [108 of 220] Compiling Distribution.Package ( Distribution/Package.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Package.o ) | ||
112 | [109 of 220] Compiling Distribution.Types.AnnotatedId ( Distribution/Types/AnnotatedId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/AnnotatedId.o ) | ||
113 | [110 of 220] Compiling Distribution.Types.ComponentInclude ( Distribution/Types/ComponentInclude.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ComponentInclude.o ) | ||
114 | [111 of 220] Compiling Distribution.Types.AbiDependency ( Distribution/Types/AbiDependency.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/AbiDependency.o ) | ||
115 | [112 of 220] Compiling Distribution.Simple.InstallDirs ( Distribution/Simple/InstallDirs.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/InstallDirs.o ) | ||
116 | [113 of 220] Compiling Distribution.Types.LegacyExeDependency ( Distribution/Types/LegacyExeDependency.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/LegacyExeDependency.o ) | ||
117 | [114 of 220] Compiling Distribution.Types.BuildInfo ( Distribution/Types/BuildInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/BuildInfo.o ) | ||
118 | [115 of 220] Compiling Distribution.Types.HookedBuildInfo ( Distribution/Types/HookedBuildInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/HookedBuildInfo.o ) | ||
119 | [116 of 220] Compiling Distribution.Types.BuildInfo.Lens ( Distribution/Types/BuildInfo/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/BuildInfo/Lens.o ) | ||
120 | [117 of 220] Compiling Distribution.Types.TestSuite ( Distribution/Types/TestSuite.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/TestSuite.o ) | ||
121 | [118 of 220] Compiling Distribution.Types.TestSuite.Lens ( Distribution/Types/TestSuite/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/TestSuite/Lens.o ) | ||
122 | [119 of 220] Compiling Distribution.Types.Library ( Distribution/Types/Library.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Library.o ) | ||
123 | [120 of 220] Compiling Distribution.Types.Library.Lens ( Distribution/Types/Library/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Library/Lens.o ) | ||
124 | [121 of 220] Compiling Distribution.Types.ForeignLib ( Distribution/Types/ForeignLib.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ForeignLib.o ) | ||
125 | [122 of 220] Compiling Distribution.Types.ForeignLib.Lens ( Distribution/Types/ForeignLib/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ForeignLib/Lens.o ) | ||
126 | [123 of 220] Compiling Distribution.Types.Executable ( Distribution/Types/Executable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Executable.o ) | ||
127 | [124 of 220] Compiling Distribution.Types.Executable.Lens ( Distribution/Types/Executable/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Executable/Lens.o ) | ||
128 | [125 of 220] Compiling Distribution.Types.Benchmark ( Distribution/Types/Benchmark.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Benchmark.o ) | ||
129 | [126 of 220] Compiling Distribution.Types.Component ( Distribution/Types/Component.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Component.o ) | ||
130 | [127 of 220] Compiling Distribution.Types.ComponentRequestedSpec ( Distribution/Types/ComponentRequestedSpec.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ComponentRequestedSpec.o ) | ||
131 | [128 of 220] Compiling Distribution.Types.PackageDescription ( Distribution/Types/PackageDescription.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PackageDescription.o ) | ||
132 | [129 of 220] Compiling Distribution.Types.GenericPackageDescription ( Distribution/Types/GenericPackageDescription.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/GenericPackageDescription.o ) | ||
133 | [130 of 220] Compiling Distribution.Types.GenericPackageDescription.Lens ( Distribution/Types/GenericPackageDescription/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/GenericPackageDescription/Lens.o ) | ||
134 | [131 of 220] Compiling Distribution.Types.Benchmark.Lens ( Distribution/Types/Benchmark/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Benchmark/Lens.o ) | ||
135 | [132 of 220] Compiling Distribution.Types.PackageDescription.Lens ( Distribution/Types/PackageDescription/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/PackageDescription/Lens.o ) | ||
136 | [133 of 220] Compiling Distribution.Types.Lens ( Distribution/Types/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/Lens.o ) | ||
137 | [134 of 220] Compiling Distribution.PackageDescription ( Distribution/PackageDescription.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription.o ) | ||
138 | [135 of 220] Compiling Distribution.Simple.BuildToolDepends ( Distribution/Simple/BuildToolDepends.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/BuildToolDepends.o ) | ||
139 | [136 of 220] Compiling Distribution.Types.ExposedModule ( Distribution/Types/ExposedModule.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ExposedModule.o ) | ||
140 | [137 of 220] Compiling Distribution.Types.InstalledPackageInfo ( Distribution/Types/InstalledPackageInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/InstalledPackageInfo.o ) | ||
141 | [138 of 220] Compiling Distribution.Types.InstalledPackageInfo.Lens ( Distribution/Types/InstalledPackageInfo/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/InstalledPackageInfo/Lens.o ) | ||
142 | [139 of 220] Compiling Distribution.PrettyUtils ( Distribution/PrettyUtils.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PrettyUtils.o ) | ||
143 | [140 of 220] Compiling Paths_Cabal ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_Cabal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Paths_Cabal.o ) | ||
144 | [141 of 220] Compiling Distribution.Simple.Utils ( Distribution/Simple/Utils.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Utils.o ) | ||
145 | [142 of 220] Compiling Distribution.Utils.NubList ( Distribution/Utils/NubList.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/NubList.o ) | ||
146 | [143 of 220] Compiling Distribution.Utils.LogProgress ( Distribution/Utils/LogProgress.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Utils/LogProgress.o ) | ||
147 | [144 of 220] Compiling Distribution.Simple.Program.ResponseFile ( Distribution/Simple/Program/ResponseFile.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/ResponseFile.o ) | ||
148 | [145 of 220] Compiling Distribution.Simple.Program.Find ( Distribution/Simple/Program/Find.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Find.o ) | ||
149 | [146 of 220] Compiling Distribution.Simple.Program.Types ( Distribution/Simple/Program/Types.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Types.o ) | ||
150 | [147 of 220] Compiling Distribution.Simple.Program.Run ( Distribution/Simple/Program/Run.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Run.o ) | ||
151 | [148 of 220] Compiling Distribution.Simple.Program.Script ( Distribution/Simple/Program/Script.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Script.o ) | ||
152 | [149 of 220] Compiling Distribution.Simple.Program.Hpc ( Distribution/Simple/Program/Hpc.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Hpc.o ) | ||
153 | [150 of 220] Compiling Distribution.Simple.Glob ( Distribution/Simple/Glob.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Glob.o ) | ||
154 | [151 of 220] Compiling Distribution.Simple.Compiler ( Distribution/Simple/Compiler.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Compiler.o ) | ||
155 | [152 of 220] Compiling Distribution.Simple.GHC.ImplInfo ( Distribution/Simple/GHC/ImplInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/GHC/ImplInfo.o ) | ||
156 | [153 of 220] Compiling Distribution.Simple.Program.GHC ( Distribution/Simple/Program/GHC.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/GHC.o ) | ||
157 | [154 of 220] Compiling Distribution.Simple.Program.Builtin ( Distribution/Simple/Program/Builtin.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Builtin.o ) | ||
158 | [155 of 220] Compiling Distribution.Simple.Program.Db ( Distribution/Simple/Program/Db.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Db.o ) | ||
159 | [156 of 220] Compiling Distribution.Simple.Program ( Distribution/Simple/Program.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program.o ) | ||
160 | [157 of 220] Compiling Distribution.Simple.Program.Strip ( Distribution/Simple/Program/Strip.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Strip.o ) | ||
161 | [158 of 220] Compiling Distribution.Simple.Command ( Distribution/Simple/Command.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Command.o ) | ||
162 | [159 of 220] Compiling Distribution.Simple.Setup ( Distribution/Simple/Setup.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Setup.o ) | ||
163 | [160 of 220] Compiling Distribution.Parsec.ParseResult ( Distribution/Parsec/ParseResult.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/ParseResult.o ) | ||
164 | [161 of 220] Compiling Distribution.Parsec.ConfVar ( Distribution/Parsec/ConfVar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Parsec/ConfVar.o ) | ||
165 | [162 of 220] Compiling Distribution.PackageDescription.Configuration ( Distribution/PackageDescription/Configuration.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/Configuration.o ) | ||
166 | [163 of 220] Compiling Distribution.Make ( Distribution/Make.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Make.o ) | ||
167 | [164 of 220] Compiling Distribution.FieldGrammar.Pretty ( Distribution/FieldGrammar/Pretty.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/FieldGrammar/Pretty.o ) | ||
168 | [165 of 220] Compiling Distribution.FieldGrammar.Parsec ( Distribution/FieldGrammar/Parsec.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/FieldGrammar/Parsec.o ) | ||
169 | [166 of 220] Compiling Distribution.FieldGrammar ( Distribution/FieldGrammar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/FieldGrammar.o ) | ||
170 | [167 of 220] Compiling Distribution.PackageDescription.FieldGrammar ( Distribution/PackageDescription/FieldGrammar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/FieldGrammar.o ) | ||
171 | [168 of 220] Compiling Distribution.PackageDescription.PrettyPrint ( Distribution/PackageDescription/PrettyPrint.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/PrettyPrint.o ) | ||
172 | [169 of 220] Compiling Distribution.PackageDescription.Parsec ( Distribution/PackageDescription/Parsec.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/Parsec.o ) | ||
173 | [170 of 220] Compiling Distribution.FieldGrammar.FieldDescrs ( Distribution/FieldGrammar/FieldDescrs.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/FieldGrammar/FieldDescrs.o ) | ||
174 | [171 of 220] Compiling Distribution.Types.InstalledPackageInfo.FieldGrammar ( Distribution/Types/InstalledPackageInfo/FieldGrammar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/InstalledPackageInfo/FieldGrammar.o ) | ||
175 | [172 of 220] Compiling Distribution.InstalledPackageInfo ( Distribution/InstalledPackageInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/InstalledPackageInfo.o ) | ||
176 | [173 of 220] Compiling Distribution.Types.ComponentLocalBuildInfo ( Distribution/Types/ComponentLocalBuildInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/ComponentLocalBuildInfo.o ) | ||
177 | [174 of 220] Compiling Distribution.Types.TargetInfo ( Distribution/Types/TargetInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/TargetInfo.o ) | ||
178 | [175 of 220] Compiling Distribution.Simple.Program.HcPkg ( Distribution/Simple/Program/HcPkg.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/HcPkg.o ) | ||
179 | [176 of 220] Compiling Distribution.Simple.PackageIndex ( Distribution/Simple/PackageIndex.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/PackageIndex.o ) | ||
180 | [177 of 220] Compiling Distribution.Types.LocalBuildInfo ( Distribution/Types/LocalBuildInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Types/LocalBuildInfo.o ) | ||
181 | [178 of 220] Compiling Distribution.Simple.LocalBuildInfo ( Distribution/Simple/LocalBuildInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/LocalBuildInfo.o ) | ||
182 | [179 of 220] Compiling Distribution.Simple.Test.Log ( Distribution/Simple/Test/Log.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Test/Log.o ) | ||
183 | [180 of 220] Compiling Distribution.Simple.Program.Ld ( Distribution/Simple/Program/Ld.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Ld.o ) | ||
184 | [181 of 220] Compiling Distribution.Simple.Program.Ar ( Distribution/Simple/Program/Ar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Program/Ar.o ) | ||
185 | [182 of 220] Compiling Distribution.Simple.Hpc ( Distribution/Simple/Hpc.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Hpc.o ) | ||
186 | [183 of 220] Compiling Distribution.Simple.BuildTarget ( Distribution/Simple/BuildTarget.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/BuildTarget.o ) | ||
187 | [184 of 220] Compiling Distribution.Simple.BuildPaths ( Distribution/Simple/BuildPaths.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/BuildPaths.o ) | ||
188 | [185 of 220] Compiling Distribution.Simple.UHC ( Distribution/Simple/UHC.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/UHC.o ) | ||
189 | [186 of 220] Compiling Distribution.PackageDescription.Check ( Distribution/PackageDescription/Check.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/PackageDescription/Check.o ) | ||
190 | [187 of 220] Compiling Distribution.Simple.Build.PathsModule ( Distribution/Simple/Build/PathsModule.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Build/PathsModule.o ) | ||
191 | [188 of 220] Compiling Distribution.Simple.Test.LibV09 ( Distribution/Simple/Test/LibV09.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Test/LibV09.o ) | ||
192 | [189 of 220] Compiling Distribution.Simple.Test.ExeV10 ( Distribution/Simple/Test/ExeV10.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Test/ExeV10.o ) | ||
193 | [190 of 220] Compiling Distribution.Simple.Build.Macros ( Distribution/Simple/Build/Macros.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Build/Macros.o ) | ||
194 | [191 of 220] Compiling Distribution.Backpack.Id ( Distribution/Backpack/Id.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/Id.o ) | ||
195 | [192 of 220] Compiling Distribution.Backpack.ConfiguredComponent ( Distribution/Backpack/ConfiguredComponent.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/ConfiguredComponent.o ) | ||
196 | [193 of 220] Compiling Distribution.Backpack.ComponentsGraph ( Distribution/Backpack/ComponentsGraph.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/ComponentsGraph.o ) | ||
197 | [194 of 220] Compiling Distribution.Simple.HaskellSuite ( Distribution/Simple/HaskellSuite.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/HaskellSuite.o ) | ||
198 | [195 of 220] Compiling Distribution.Simple.GHC.Internal ( Distribution/Simple/GHC/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/GHC/Internal.o ) | ||
199 | [196 of 220] Compiling Distribution.Simple.GHCJS ( Distribution/Simple/GHCJS.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/GHCJS.o ) | ||
200 | [197 of 220] Compiling Distribution.Simple.GHC.EnvironmentParser ( Distribution/Simple/GHC/EnvironmentParser.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/GHC/EnvironmentParser.o ) | ||
201 | [198 of 220] Compiling Distribution.Simple.GHC ( Distribution/Simple/GHC.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/GHC.o ) | ||
202 | [199 of 220] Compiling Distribution.Simple.Install ( Distribution/Simple/Install.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Install.o ) | ||
203 | [200 of 220] Compiling Distribution.Backpack.ModuleShape ( Distribution/Backpack/ModuleShape.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/ModuleShape.o ) | ||
204 | [201 of 220] Compiling Distribution.Backpack.UnifyM ( Distribution/Backpack/UnifyM.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/UnifyM.o ) | ||
205 | [202 of 220] Compiling Distribution.Backpack.MixLink ( Distribution/Backpack/MixLink.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/MixLink.o ) | ||
206 | [203 of 220] Compiling Distribution.Backpack.PreModuleShape ( Distribution/Backpack/PreModuleShape.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/PreModuleShape.o ) | ||
207 | [204 of 220] Compiling Distribution.Backpack.PreExistingComponent ( Distribution/Backpack/PreExistingComponent.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/PreExistingComponent.o ) | ||
208 | [205 of 220] Compiling Distribution.Backpack.LinkedComponent ( Distribution/Backpack/LinkedComponent.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/LinkedComponent.o ) | ||
209 | [206 of 220] Compiling Distribution.Compat.Time ( Distribution/Compat/Time.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Compat/Time.o ) | ||
210 | [207 of 220] Compiling Distribution.Backpack.ReadyComponent ( Distribution/Backpack/ReadyComponent.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/ReadyComponent.o ) | ||
211 | [208 of 220] Compiling Distribution.Backpack.Configure ( Distribution/Backpack/Configure.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/Configure.o ) | ||
212 | [209 of 220] Compiling Distribution.Backpack.DescribeUnitId ( Distribution/Backpack/DescribeUnitId.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Backpack/DescribeUnitId.o ) | ||
213 | [210 of 220] Compiling Distribution.Simple.Register ( Distribution/Simple/Register.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Register.o ) | ||
214 | [211 of 220] Compiling Distribution.Simple.PreProcess ( Distribution/Simple/PreProcess.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/PreProcess.o ) | ||
215 | [212 of 220] Compiling Distribution.Simple.UserHooks ( Distribution/Simple/UserHooks.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/UserHooks.o ) | ||
216 | [213 of 220] Compiling Distribution.Simple.Test ( Distribution/Simple/Test.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Test.o ) | ||
217 | [214 of 220] Compiling Distribution.Simple.Bench ( Distribution/Simple/Bench.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Bench.o ) | ||
218 | [215 of 220] Compiling Distribution.Simple.SrcDist ( Distribution/Simple/SrcDist.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/SrcDist.o ) | ||
219 | [216 of 220] Compiling Distribution.Simple.Configure ( Distribution/Simple/Configure.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Configure.o ) | ||
220 | [217 of 220] Compiling Distribution.Simple.Build ( Distribution/Simple/Build.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Build.o ) | ||
221 | [218 of 220] Compiling Distribution.Simple.Haddock ( Distribution/Simple/Haddock.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Haddock.o ) | ||
222 | [219 of 220] Compiling Distribution.Simple.Doctest ( Distribution/Simple/Doctest.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple/Doctest.o ) | ||
223 | [220 of 220] Compiling Distribution.Simple ( Distribution/Simple.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Simple.o ) | ||
224 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/Cabal-2.4.1.0-9MZFDeNrcJI10bcroa6pq8 | ||
225 | Registering library for Cabal-2.4.1.0.. | ||
diff --git a/.stack-work/logs/StateVar-1.1.1.1.log b/.stack-work/logs/StateVar-1.1.1.1.log deleted file mode 100644 index 37a96e1..0000000 --- a/.stack-work/logs/StateVar-1.1.1.1.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring StateVar-1.1.1.1... | ||
2 | Preprocessing library for StateVar-1.1.1.1.. | ||
3 | Building library for StateVar-1.1.1.1.. | ||
4 | [1 of 1] Compiling Data.StateVar ( src/Data/StateVar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/StateVar.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/StateVar-1.1.1.1-2ewTKofpCGhC2np5dyFIaR | ||
6 | Registering library for StateVar-1.1.1.1.. | ||
diff --git a/.stack-work/logs/adjunctions-4.4.log b/.stack-work/logs/adjunctions-4.4.log deleted file mode 100644 index d64a840..0000000 --- a/.stack-work/logs/adjunctions-4.4.log +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | Configuring adjunctions-4.4... | ||
2 | Preprocessing library for adjunctions-4.4.. | ||
3 | Building library for adjunctions-4.4.. | ||
4 | [ 1 of 11] Compiling Control.Monad.Trans.Conts ( src/Control/Monad/Trans/Conts.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Conts.o ) | ||
5 | [ 2 of 11] Compiling Data.Functor.Contravariant.Rep ( src/Data/Functor/Contravariant/Rep.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Rep.o ) | ||
6 | |||
7 | src/Data/Functor/Contravariant/Rep.hs:59:1: warning: [-Winline-rule-shadowing] | ||
8 | Rule "tabulate/index" may never fire | ||
9 | because rule "Class op index" for ‘index’ might fire first | ||
10 | Probable fix: add phase [n] or [~n] to the competing rule | ||
11 | | | ||
12 | 59 | "tabulate/index" forall t. tabulate (index t) = t #-} | ||
13 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
14 | [ 3 of 11] Compiling Data.Functor.Contravariant.Adjunction ( src/Data/Functor/Contravariant/Adjunction.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Adjunction.o ) | ||
15 | [ 4 of 11] Compiling Control.Monad.Trans.Contravariant.Adjoint ( src/Control/Monad/Trans/Contravariant/Adjoint.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Contravariant/Adjoint.o ) | ||
16 | [ 5 of 11] Compiling Data.Functor.Rep ( src/Data/Functor/Rep.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Rep.o ) | ||
17 | |||
18 | src/Data/Functor/Rep.hs:250:1: warning: [-Winline-rule-shadowing] | ||
19 | Rule "tabulate/index" may never fire | ||
20 | because rule "Class op index" for ‘index’ might fire first | ||
21 | Probable fix: add phase [n] or [~n] to the competing rule | ||
22 | | | ||
23 | 250 | "tabulate/index" forall t. tabulate (index t) = t #-} | ||
24 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
25 | [ 6 of 11] Compiling Data.Functor.Adjunction ( src/Data/Functor/Adjunction.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Adjunction.o ) | ||
26 | |||
27 | src/Data/Functor/Adjunction.hs:9:14: warning: [-Wtrustworthy-safe] | ||
28 | ‘Data.Functor.Adjunction’ is marked as Trustworthy but has been inferred as safe! | ||
29 | | | ||
30 | 9 | {-# LANGUAGE Trustworthy #-} | ||
31 | | ^^^^^^^^^^^ | ||
32 | [ 7 of 11] Compiling Control.Monad.Trans.Adjoint ( src/Control/Monad/Trans/Adjoint.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Adjoint.o ) | ||
33 | [ 8 of 11] Compiling Control.Comonad.Trans.Adjoint ( src/Control/Comonad/Trans/Adjoint.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Adjoint.o ) | ||
34 | [ 9 of 11] Compiling Control.Monad.Representable.State ( src/Control/Monad/Representable/State.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Representable/State.o ) | ||
35 | [10 of 11] Compiling Control.Monad.Representable.Reader ( src/Control/Monad/Representable/Reader.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Representable/Reader.o ) | ||
36 | [11 of 11] Compiling Control.Comonad.Representable.Store ( src/Control/Comonad/Representable/Store.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Representable/Store.o ) | ||
37 | |||
38 | src/Control/Comonad/Representable/Store.hs:46:1: warning: [-Wunused-imports] | ||
39 | The import of ‘Data.Semigroup’ is redundant | ||
40 | except perhaps to import instances from ‘Data.Semigroup’ | ||
41 | To import instances alone, use: import Data.Semigroup() | ||
42 | | | ||
43 | 46 | import Data.Semigroup | ||
44 | | ^^^^^^^^^^^^^^^^^^^^^ | ||
45 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/adjunctions-4.4-5XvmwZ9ik8T4JDgak5RolE | ||
46 | Registering library for adjunctions-4.4.. | ||
diff --git a/.stack-work/logs/base-orphans-0.8.1.log b/.stack-work/logs/base-orphans-0.8.1.log deleted file mode 100644 index cbbd334..0000000 --- a/.stack-work/logs/base-orphans-0.8.1.log +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | Configuring base-orphans-0.8.1... | ||
2 | Preprocessing library for base-orphans-0.8.1.. | ||
3 | Building library for base-orphans-0.8.1.. | ||
4 | [1 of 2] Compiling Data.Orphans ( src/Data/Orphans.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Orphans.o ) | ||
5 | [2 of 2] Compiling Data.Orphans.Prelude ( src/Data/Orphans/Prelude.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Orphans/Prelude.o ) | ||
6 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/base-orphans-0.8.1-HeyTAcy4PKhDcGhjvJwDzq | ||
7 | Registering library for base-orphans-0.8.1.. | ||
diff --git a/.stack-work/logs/bifunctors-5.5.4.log b/.stack-work/logs/bifunctors-5.5.4.log deleted file mode 100644 index 1a51bd3..0000000 --- a/.stack-work/logs/bifunctors-5.5.4.log +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | Configuring bifunctors-5.5.4... | ||
2 | Preprocessing library for bifunctors-5.5.4.. | ||
3 | Building library for bifunctors-5.5.4.. | ||
4 | [ 1 of 15] Compiling Data.Biapplicative ( src/Data/Biapplicative.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Biapplicative.o ) | ||
5 | [ 2 of 15] Compiling Data.Bifunctor.Biff ( src/Data/Bifunctor/Biff.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Biff.o ) | ||
6 | [ 3 of 15] Compiling Data.Bifunctor.Clown ( src/Data/Bifunctor/Clown.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Clown.o ) | ||
7 | [ 4 of 15] Compiling Data.Bifunctor.Fix ( src/Data/Bifunctor/Fix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Fix.o ) | ||
8 | [ 5 of 15] Compiling Data.Bifunctor.Functor ( src/Data/Bifunctor/Functor.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Functor.o ) | ||
9 | [ 6 of 15] Compiling Data.Bifunctor.Flip ( src/Data/Bifunctor/Flip.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Flip.o ) | ||
10 | [ 7 of 15] Compiling Data.Bifunctor.Join ( src/Data/Bifunctor/Join.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Join.o ) | ||
11 | [ 8 of 15] Compiling Data.Bifunctor.Joker ( src/Data/Bifunctor/Joker.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Joker.o ) | ||
12 | [ 9 of 15] Compiling Data.Bifunctor.Product ( src/Data/Bifunctor/Product.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Product.o ) | ||
13 | [10 of 15] Compiling Data.Bifunctor.Sum ( src/Data/Bifunctor/Sum.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Sum.o ) | ||
14 | [11 of 15] Compiling Data.Bifunctor.TH.Internal ( src/Data/Bifunctor/TH/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/TH/Internal.o ) | ||
15 | [12 of 15] Compiling Data.Bifunctor.TH ( src/Data/Bifunctor/TH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/TH.o ) | ||
16 | [13 of 15] Compiling Data.Bifunctor.Tannen ( src/Data/Bifunctor/Tannen.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Tannen.o ) | ||
17 | [14 of 15] Compiling Data.Bifunctor.Wrapped ( src/Data/Bifunctor/Wrapped.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Wrapped.o ) | ||
18 | [15 of 15] Compiling Paths_bifunctors ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_bifunctors.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Paths_bifunctors.o ) | ||
19 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/bifunctors-5.5.4-JI14q9FdaTRLWn4YdH8JmV | ||
20 | Registering library for bifunctors-5.5.4.. | ||
diff --git a/.stack-work/logs/bytes-0.15.5.log b/.stack-work/logs/bytes-0.15.5.log deleted file mode 100644 index 97632e6..0000000 --- a/.stack-work/logs/bytes-0.15.5.log +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack14391/bytes-0.15.5/Setup.lhs, /tmp/stack14391/bytes-0.15.5/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack14391/bytes-0.15.5/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack14391/bytes-0.15.5/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring bytes-0.15.5... | ||
5 | Preprocessing library for bytes-0.15.5.. | ||
6 | Building library for bytes-0.15.5.. | ||
7 | [1 of 5] Compiling Data.Bytes.Get ( src/Data/Bytes/Get.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bytes/Get.o ) | ||
8 | [2 of 5] Compiling Data.Bytes.Put ( src/Data/Bytes/Put.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bytes/Put.o ) | ||
9 | [3 of 5] Compiling Data.Bytes.Signed ( src/Data/Bytes/Signed.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bytes/Signed.o ) | ||
10 | [4 of 5] Compiling Data.Bytes.VarInt ( src/Data/Bytes/VarInt.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bytes/VarInt.o ) | ||
11 | [5 of 5] Compiling Data.Bytes.Serial ( src/Data/Bytes/Serial.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bytes/Serial.o ) | ||
12 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/bytes-0.15.5-3xefL3v3Ncd2XFpMRBDGRq | ||
13 | Registering library for bytes-0.15.5.. | ||
diff --git a/.stack-work/logs/cabal-doctest-1.0.6.log b/.stack-work/logs/cabal-doctest-1.0.6.log deleted file mode 100644 index 0b3bd21..0000000 --- a/.stack-work/logs/cabal-doctest-1.0.6.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring cabal-doctest-1.0.6... | ||
2 | Preprocessing library for cabal-doctest-1.0.6.. | ||
3 | Building library for cabal-doctest-1.0.6.. | ||
4 | [1 of 1] Compiling Distribution.Extra.Doctest ( src/Distribution/Extra/Doctest.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Distribution/Extra/Doctest.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/cabal-doctest-1.0.6-GxlnXP6RWcB1QAJigGyNcv | ||
6 | Registering library for cabal-doctest-1.0.6.. | ||
diff --git a/.stack-work/logs/call-stack-0.1.0.log b/.stack-work/logs/call-stack-0.1.0.log deleted file mode 100644 index 9d0fbe4..0000000 --- a/.stack-work/logs/call-stack-0.1.0.log +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | Configuring call-stack-0.1.0... | ||
2 | Preprocessing library for call-stack-0.1.0.. | ||
3 | Building library for call-stack-0.1.0.. | ||
4 | [1 of 3] Compiling Data.SrcLoc ( src/Data/SrcLoc.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/SrcLoc.o ) | ||
5 | [2 of 3] Compiling Data.CallStack ( src/Data/CallStack.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/CallStack.o ) | ||
6 | [3 of 3] Compiling Paths_call_stack ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_call_stack.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Paths_call_stack.o ) | ||
7 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/call-stack-0.1.0-J1eWgTNOnM4IGVyeW0v2YZ | ||
8 | Registering library for call-stack-0.1.0.. | ||
diff --git a/.stack-work/logs/cereal-0.5.8.0.log b/.stack-work/logs/cereal-0.5.8.0.log deleted file mode 100644 index 5f1bedf..0000000 --- a/.stack-work/logs/cereal-0.5.8.0.log +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | Configuring cereal-0.5.8.0... | ||
2 | Preprocessing library for cereal-0.5.8.0.. | ||
3 | Building library for cereal-0.5.8.0.. | ||
4 | [1 of 4] Compiling Data.Serialize.Get ( src/Data/Serialize/Get.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Serialize/Get.o ) | ||
5 | [2 of 4] Compiling Data.Serialize.Put ( src/Data/Serialize/Put.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Serialize/Put.o ) | ||
6 | [3 of 4] Compiling Data.Serialize.IEEE754 ( src/Data/Serialize/IEEE754.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Serialize/IEEE754.o ) | ||
7 | [4 of 4] Compiling Data.Serialize ( src/Data/Serialize.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Serialize.o ) | ||
8 | |||
9 | src/Data/Serialize.hs:291:9: warning: [-Wincomplete-patterns] | ||
10 | Pattern match(es) are non-exhaustive | ||
11 | In an equation for ‘findNr’: Patterns not matched: _ _ | ||
12 | | | ||
13 | 291 | findNr lo hi | ||
14 | | ^^^^^^^^^^^^... | ||
15 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/cereal-0.5.8.0-6rtfJLvNbgP66iuaPkuxJC | ||
16 | Registering library for cereal-0.5.8.0.. | ||
diff --git a/.stack-work/logs/comonad-5.0.5.log b/.stack-work/logs/comonad-5.0.5.log deleted file mode 100644 index c261777..0000000 --- a/.stack-work/logs/comonad-5.0.5.log +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack14391/comonad-5.0.5/Setup.lhs, /tmp/stack14391/comonad-5.0.5/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack14391/comonad-5.0.5/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack14391/comonad-5.0.5/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring comonad-5.0.5... | ||
5 | Preprocessing library for comonad-5.0.5.. | ||
6 | Building library for comonad-5.0.5.. | ||
7 | [ 1 of 15] Compiling Control.Comonad ( src/Control/Comonad.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad.o ) | ||
8 | [ 2 of 15] Compiling Control.Comonad.Hoist.Class ( src/Control/Comonad/Hoist/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Hoist/Class.o ) | ||
9 | [ 3 of 15] Compiling Control.Comonad.Trans.Class ( src/Control/Comonad/Trans/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Class.o ) | ||
10 | [ 4 of 15] Compiling Control.Comonad.Trans.Env ( src/Control/Comonad/Trans/Env.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Env.o ) | ||
11 | [ 5 of 15] Compiling Control.Comonad.Trans.Identity ( src/Control/Comonad/Trans/Identity.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Identity.o ) | ||
12 | [ 6 of 15] Compiling Control.Comonad.Identity ( src/Control/Comonad/Identity.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Identity.o ) | ||
13 | [ 7 of 15] Compiling Control.Comonad.Trans.Store ( src/Control/Comonad/Trans/Store.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Store.o ) | ||
14 | [ 8 of 15] Compiling Control.Comonad.Trans.Traced ( src/Control/Comonad/Trans/Traced.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Traced.o ) | ||
15 | [ 9 of 15] Compiling Control.Comonad.Traced.Class ( src/Control/Comonad/Traced/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Traced/Class.o ) | ||
16 | [10 of 15] Compiling Control.Comonad.Traced ( src/Control/Comonad/Traced.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Traced.o ) | ||
17 | [11 of 15] Compiling Control.Comonad.Store.Class ( src/Control/Comonad/Store/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Store/Class.o ) | ||
18 | [12 of 15] Compiling Control.Comonad.Store ( src/Control/Comonad/Store.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Store.o ) | ||
19 | [13 of 15] Compiling Control.Comonad.Env.Class ( src/Control/Comonad/Env/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Env/Class.o ) | ||
20 | [14 of 15] Compiling Control.Comonad.Env ( src/Control/Comonad/Env.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Env.o ) | ||
21 | [15 of 15] Compiling Data.Functor.Composition ( src/Data/Functor/Composition.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Composition.o ) | ||
22 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/comonad-5.0.5-FO6wPvVdvoe5bevdeq1PfM | ||
23 | Registering library for comonad-5.0.5.. | ||
diff --git a/.stack-work/logs/contravariant-1.5.1.log b/.stack-work/logs/contravariant-1.5.1.log deleted file mode 100644 index c568ac4..0000000 --- a/.stack-work/logs/contravariant-1.5.1.log +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | Configuring contravariant-1.5.1... | ||
2 | Preprocessing library for contravariant-1.5.1.. | ||
3 | Building library for contravariant-1.5.1.. | ||
4 | [1 of 3] Compiling Data.Functor.Contravariant.Divisible ( src/Data/Functor/Contravariant/Divisible.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Divisible.o ) | ||
5 | [2 of 3] Compiling Data.Functor.Contravariant.Compose ( src/Data/Functor/Contravariant/Compose.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Compose.o ) | ||
6 | [3 of 3] Compiling Data.Functor.Contravariant.Generic ( src/Data/Functor/Contravariant/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Generic.o ) | ||
7 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/contravariant-1.5.1-5DqKSjbrRzZU8YLmfpGsF | ||
8 | Registering library for contravariant-1.5.1.. | ||
diff --git a/.stack-work/logs/distributive-0.6.log b/.stack-work/logs/distributive-0.6.log deleted file mode 100644 index 0ea1b6e..0000000 --- a/.stack-work/logs/distributive-0.6.log +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack14391/distributive-0.6/Setup.lhs, /tmp/stack14391/distributive-0.6/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack14391/distributive-0.6/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack14391/distributive-0.6/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring distributive-0.6... | ||
5 | Preprocessing library for distributive-0.6.. | ||
6 | Building library for distributive-0.6.. | ||
7 | [1 of 2] Compiling Data.Distributive ( src/Data/Distributive.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Distributive.o ) | ||
8 | [2 of 2] Compiling Data.Distributive.Generic ( src/Data/Distributive/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Distributive/Generic.o ) | ||
9 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/distributive-0.6-9dQuxsXiNSOFiN4BOgtPCR | ||
10 | Registering library for distributive-0.6.. | ||
diff --git a/.stack-work/logs/exceptions-0.10.2.log b/.stack-work/logs/exceptions-0.10.2.log deleted file mode 100644 index d7e7224..0000000 --- a/.stack-work/logs/exceptions-0.10.2.log +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | Configuring exceptions-0.10.2... | ||
2 | Preprocessing library for exceptions-0.10.2.. | ||
3 | Building library for exceptions-0.10.2.. | ||
4 | [1 of 2] Compiling Control.Monad.Catch ( src/Control/Monad/Catch.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Catch.o ) | ||
5 | [2 of 2] Compiling Control.Monad.Catch.Pure ( src/Control/Monad/Catch/Pure.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Catch/Pure.o ) | ||
6 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/exceptions-0.10.2-965Nx9KftkgCsZ4B7Zhuyu | ||
7 | Registering library for exceptions-0.10.2.. | ||
diff --git a/.stack-work/logs/free-5.1.1.log b/.stack-work/logs/free-5.1.1.log deleted file mode 100644 index 8a8070f..0000000 --- a/.stack-work/logs/free-5.1.1.log +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | Configuring free-5.1.1... | ||
2 | Preprocessing library for free-5.1.1.. | ||
3 | Building library for free-5.1.1.. | ||
4 | [ 1 of 20] Compiling Control.Alternative.Free ( src/Control/Alternative/Free.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Alternative/Free.o ) | ||
5 | [ 2 of 20] Compiling Control.Alternative.Free.Final ( src/Control/Alternative/Free/Final.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Alternative/Free/Final.o ) | ||
6 | [ 3 of 20] Compiling Control.Applicative.Free ( src/Control/Applicative/Free.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Applicative/Free.o ) | ||
7 | [ 4 of 20] Compiling Control.Applicative.Free.Fast ( src/Control/Applicative/Free/Fast.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Applicative/Free/Fast.o ) | ||
8 | [ 5 of 20] Compiling Control.Applicative.Free.Final ( src/Control/Applicative/Free/Final.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Applicative/Free/Final.o ) | ||
9 | [ 6 of 20] Compiling Control.Applicative.Trans.Free ( src/Control/Applicative/Trans/Free.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Applicative/Trans/Free.o ) | ||
10 | [ 7 of 20] Compiling Control.Comonad.Cofree.Class ( src/Control/Comonad/Cofree/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Cofree/Class.o ) | ||
11 | [ 8 of 20] Compiling Control.Comonad.Trans.Cofree ( src/Control/Comonad/Trans/Cofree.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Cofree.o ) | ||
12 | [ 9 of 20] Compiling Control.Monad.Free.Class ( src/Control/Monad/Free/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Free/Class.o ) | ||
13 | [10 of 20] Compiling Control.Monad.Free.TH ( src/Control/Monad/Free/TH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Free/TH.o ) | ||
14 | [11 of 20] Compiling Data.Functor.Classes.Compat ( src/Data/Functor/Classes/Compat.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Classes/Compat.o ) | ||
15 | [12 of 20] Compiling Control.Monad.Trans.Iter ( src/Control/Monad/Trans/Iter.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Iter.o ) | ||
16 | [13 of 20] Compiling Control.Monad.Trans.Free.Ap ( src/Control/Monad/Trans/Free/Ap.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Free/Ap.o ) | ||
17 | |||
18 | src/Control/Monad/Trans/Free/Ap.hs:311:3: warning: [-Wnoncanonical-monadfail-instances] | ||
19 | Noncanonical ‘fail’ definition detected | ||
20 | in the instance declaration for ‘Monad (FreeT f m)’. | ||
21 | Either remove definition for ‘fail’ or define as ‘fail = Control.Monad.Fail.fail’ | ||
22 | | | ||
23 | 311 | fail e = FreeT (fail e) | ||
24 | | ^^^^^^^^^^^^^^^^^^^^^^^ | ||
25 | [14 of 20] Compiling Control.Monad.Trans.Free ( src/Control/Monad/Trans/Free.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Free.o ) | ||
26 | |||
27 | src/Control/Monad/Trans/Free.hs:312:3: warning: [-Wnoncanonical-monadfail-instances] | ||
28 | Noncanonical ‘fail’ definition detected | ||
29 | in the instance declaration for ‘Monad (FreeT f m)’. | ||
30 | Either remove definition for ‘fail’ or define as ‘fail = Control.Monad.Fail.fail’ | ||
31 | | | ||
32 | 312 | fail e = FreeT (fail e) | ||
33 | | ^^^^^^^^^^^^^^^^^^^^^^^ | ||
34 | [15 of 20] Compiling Control.Monad.Trans.Free.Church ( src/Control/Monad/Trans/Free/Church.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Free/Church.o ) | ||
35 | [16 of 20] Compiling Control.Monad.Free.Ap ( src/Control/Monad/Free/Ap.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Free/Ap.o ) | ||
36 | [17 of 20] Compiling Control.Monad.Free ( src/Control/Monad/Free.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Free.o ) | ||
37 | [18 of 20] Compiling Control.Monad.Free.Church ( src/Control/Monad/Free/Church.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Free/Church.o ) | ||
38 | [19 of 20] Compiling Control.Comonad.Trans.Coiter ( src/Control/Comonad/Trans/Coiter.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Trans/Coiter.o ) | ||
39 | [20 of 20] Compiling Control.Comonad.Cofree ( src/Control/Comonad/Cofree.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Cofree.o ) | ||
40 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/free-5.1.1-4bsEiYxPhIEFqPXXuEKbd4 | ||
41 | Registering library for free-5.1.1.. | ||
diff --git a/.stack-work/logs/ghc-paths-0.1.0.9.log b/.stack-work/logs/ghc-paths-0.1.0.9.log deleted file mode 100644 index 8c8d776..0000000 --- a/.stack-work/logs/ghc-paths-0.1.0.9.log +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack10672/ghc-paths-0.1.0.9/Setup.hs, /tmp/stack10672/ghc-paths-0.1.0.9/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | |||
3 | /tmp/stack10672/ghc-paths-0.1.0.9/Setup.hs:29:18: warning: [-Wdeprecations] | ||
4 | In the use of ‘rawSystemProgramStdoutConf’ | ||
5 | (imported from Distribution.Simple.Program): | ||
6 | Deprecated: "use getDbProgramOutput instead. This symbol will be removed in Cabal-3.0 (est. Mar 2019)." | ||
7 | | | ||
8 | 29 | libdir_ <- rawSystemProgramStdoutConf (fromFlag (configVerbosity flags)) | ||
9 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
10 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack10672/ghc-paths-0.1.0.9/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
11 | Linking /tmp/stack10672/ghc-paths-0.1.0.9/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
12 | Configuring ghc-paths-0.1.0.9... | ||
13 | Preprocessing library for ghc-paths-0.1.0.9.. | ||
14 | Building library for ghc-paths-0.1.0.9.. | ||
15 | [1 of 1] Compiling GHC.Paths ( GHC/Paths.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/GHC/Paths.o ) | ||
16 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/ghc-paths-0.1.0.9-KaBYbRV3ryA10w04FwbrO2 | ||
17 | Registering library for ghc-paths-0.1.0.9.. | ||
diff --git a/.stack-work/logs/hashable-1.2.7.0.log b/.stack-work/logs/hashable-1.2.7.0.log deleted file mode 100644 index f73d845..0000000 --- a/.stack-work/logs/hashable-1.2.7.0.log +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | Configuring hashable-1.2.7.0... | ||
2 | Preprocessing library for hashable-1.2.7.0.. | ||
3 | Building library for hashable-1.2.7.0.. | ||
4 | [1 of 4] Compiling Data.Hashable.Class ( Data/Hashable/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Hashable/Class.o ) | ||
5 | [2 of 4] Compiling Data.Hashable.Generic ( Data/Hashable/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Hashable/Generic.o ) | ||
6 | [3 of 4] Compiling Data.Hashable ( Data/Hashable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Hashable.o ) | ||
7 | [4 of 4] Compiling Data.Hashable.Lifted ( Data/Hashable/Lifted.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Hashable/Lifted.o ) | ||
8 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/hashable-1.2.7.0-CWI8VZuQTAYWIQTQQtqCV | ||
9 | Registering library for hashable-1.2.7.0.. | ||
diff --git a/.stack-work/logs/haskeline-0.7.5.0.log b/.stack-work/logs/haskeline-0.7.5.0.log deleted file mode 100644 index 3b2647a..0000000 --- a/.stack-work/logs/haskeline-0.7.5.0.log +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | Configuring haskeline-0.7.5.0... | ||
2 | Preprocessing library for haskeline-0.7.5.0.. | ||
3 | Building library for haskeline-0.7.5.0.. | ||
4 | [ 1 of 27] Compiling System.Console.Haskeline.Directory ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Directory.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Directory.o ) | ||
5 | [ 2 of 27] Compiling System.Console.Haskeline.Key ( System/Console/Haskeline/Key.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Key.o ) | ||
6 | [ 3 of 27] Compiling System.Console.Haskeline.LineState ( System/Console/Haskeline/LineState.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/LineState.o ) | ||
7 | [ 4 of 27] Compiling System.Console.Haskeline.Command ( System/Console/Haskeline/Command.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Command.o ) | ||
8 | [ 5 of 27] Compiling System.Console.Haskeline.Backend.WCWidth ( System/Console/Haskeline/Backend/WCWidth.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend/WCWidth.o ) | ||
9 | [ 6 of 27] Compiling System.Console.Haskeline.MonadException ( System/Console/Haskeline/MonadException.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/MonadException.o ) | ||
10 | [ 7 of 27] Compiling System.Console.Haskeline.Monads ( System/Console/Haskeline/Monads.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Monads.o ) | ||
11 | [ 8 of 27] Compiling System.Console.Haskeline.Completion ( System/Console/Haskeline/Completion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Completion.o ) | ||
12 | [ 9 of 27] Compiling System.Console.Haskeline.Command.Undo ( System/Console/Haskeline/Command/Undo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Command/Undo.o ) | ||
13 | [10 of 27] Compiling System.Console.Haskeline.Command.KillRing ( System/Console/Haskeline/Command/KillRing.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Command/KillRing.o ) | ||
14 | [11 of 27] Compiling System.Console.Haskeline.Prefs ( System/Console/Haskeline/Prefs.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Prefs.o ) | ||
15 | [12 of 27] Compiling System.Console.Haskeline.Recover ( System/Console/Haskeline/Recover.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Recover.o ) | ||
16 | [13 of 27] Compiling System.Console.Haskeline.History ( System/Console/Haskeline/History.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/History.o ) | ||
17 | [14 of 27] Compiling System.Console.Haskeline.Command.History ( System/Console/Haskeline/Command/History.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Command/History.o ) | ||
18 | [15 of 27] Compiling System.Console.Haskeline.Backend.Posix.Encoder ( System/Console/Haskeline/Backend/Posix/Encoder.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend/Posix/Encoder.o ) | ||
19 | [16 of 27] Compiling System.Console.Haskeline.Term ( System/Console/Haskeline/Term.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Term.o ) | ||
20 | [17 of 27] Compiling System.Console.Haskeline.RunCommand ( System/Console/Haskeline/RunCommand.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/RunCommand.o ) | ||
21 | [18 of 27] Compiling System.Console.Haskeline.Command.Completion ( System/Console/Haskeline/Command/Completion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Command/Completion.o ) | ||
22 | [19 of 27] Compiling System.Console.Haskeline.Backend.Posix ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend/Posix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend/Posix.o ) | ||
23 | [20 of 27] Compiling System.Console.Haskeline.Backend.Terminfo ( System/Console/Haskeline/Backend/Terminfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend/Terminfo.o ) | ||
24 | [21 of 27] Compiling System.Console.Haskeline.Backend.DumbTerm ( System/Console/Haskeline/Backend/DumbTerm.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend/DumbTerm.o ) | ||
25 | [22 of 27] Compiling System.Console.Haskeline.Backend ( System/Console/Haskeline/Backend.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Backend.o ) | ||
26 | [23 of 27] Compiling System.Console.Haskeline.InputT ( System/Console/Haskeline/InputT.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/InputT.o ) | ||
27 | [24 of 27] Compiling System.Console.Haskeline.Emacs ( System/Console/Haskeline/Emacs.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Emacs.o ) | ||
28 | [25 of 27] Compiling System.Console.Haskeline.Vi ( System/Console/Haskeline/Vi.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/Vi.o ) | ||
29 | [26 of 27] Compiling System.Console.Haskeline ( System/Console/Haskeline.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline.o ) | ||
30 | [27 of 27] Compiling System.Console.Haskeline.IO ( System/Console/Haskeline/IO.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Console/Haskeline/IO.o ) | ||
31 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/haskeline-0.7.5.0-ADzuRaH0DKHIRvvi965fg2 | ||
32 | Registering library for haskeline-0.7.5.0.. | ||
diff --git a/.stack-work/logs/hmatrix-0.19.0.0.log b/.stack-work/logs/hmatrix-0.19.0.0.log deleted file mode 100644 index 7d0df8e..0000000 --- a/.stack-work/logs/hmatrix-0.19.0.0.log +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | Configuring hmatrix-0.19.0.0... | ||
2 | Preprocessing library for hmatrix-0.19.0.0.. | ||
3 | Building library for hmatrix-0.19.0.0.. | ||
4 | [ 1 of 27] Compiling Internal.Vector ( src/Internal/Vector.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Vector.o ) | ||
5 | [ 2 of 27] Compiling Internal.Devel ( src/Internal/Devel.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Devel.o ) | ||
6 | [ 3 of 27] Compiling Internal.Vectorized ( src/Internal/Vectorized.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Vectorized.o ) | ||
7 | [ 4 of 27] Compiling Internal.Matrix ( src/Internal/Matrix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Matrix.o ) | ||
8 | [ 5 of 27] Compiling Internal.ST ( src/Internal/ST.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/ST.o ) | ||
9 | [ 6 of 27] Compiling Internal.IO ( src/Internal/IO.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/IO.o ) | ||
10 | [ 7 of 27] Compiling Internal.Element ( src/Internal/Element.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Element.o ) | ||
11 | [ 8 of 27] Compiling Internal.Conversion ( src/Internal/Conversion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Conversion.o ) | ||
12 | [ 9 of 27] Compiling Internal.LAPACK ( src/Internal/LAPACK.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/LAPACK.o ) | ||
13 | [10 of 27] Compiling Internal.Numeric ( src/Internal/Numeric.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Numeric.o ) | ||
14 | [11 of 27] Compiling Internal.Sparse ( src/Internal/Sparse.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Sparse.o ) | ||
15 | [12 of 27] Compiling Internal.Chain ( src/Internal/Chain.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Chain.o ) | ||
16 | [13 of 27] Compiling Internal.Algorithms ( src/Internal/Algorithms.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Algorithms.o ) | ||
17 | |||
18 | [;1msrc/Internal/Algorithms.hs:922:11: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wname-shadowing[0m[0m[;1m][0m[0m[;1m | ||
19 | This binding for ‘<>’ shadows the existing binding | ||
20 | imported from ‘Prelude’ at src/Internal/Algorithms.hs:25:8-26 | ||
21 | (and originally defined in ‘GHC.Base’)[0m[0m | ||
22 | [;1m[34m |[0m[0m | ||
23 | [;1m[34m922 |[0m[0m [;1m[35m(<>)[0m[0m = multiply | ||
24 | [;1m[34m |[0m[0m[;1m[35m ^^^^[0m[0m | ||
25 | [0m[0m[0m | ||
26 | [;1msrc/Internal/Algorithms.hs:1103:5: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wname-shadowing[0m[0m[;1m][0m[0m[;1m | ||
27 | This binding for ‘<>’ shadows the existing binding | ||
28 | imported from ‘Prelude’ at src/Internal/Algorithms.hs:25:8-26 | ||
29 | (and originally defined in ‘GHC.Base’)[0m[0m | ||
30 | [;1m[34m |[0m[0m | ||
31 | [;1m[34m1103 |[0m[0m [;1m[35m(<>)[0m[0m = mXm | ||
32 | [;1m[34m |[0m[0m[;1m[35m ^^^^[0m[0m | ||
33 | [0m[0m[0m[14 of 27] Compiling Internal.Random ( src/Internal/Random.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Random.o ) | ||
34 | [15 of 27] Compiling Internal.Container ( src/Internal/Container.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Container.o ) | ||
35 | [16 of 27] Compiling Internal.Convolution ( src/Internal/Convolution.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Convolution.o ) | ||
36 | [17 of 27] Compiling Numeric.LinearAlgebra.Devel ( src/Numeric/LinearAlgebra/Devel.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/LinearAlgebra/Devel.o ) | ||
37 | [18 of 27] Compiling Numeric.Matrix ( src/Numeric/Matrix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/Matrix.o ) | ||
38 | [19 of 27] Compiling Numeric.Vector ( src/Numeric/Vector.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/Vector.o ) | ||
39 | [20 of 27] Compiling Internal.Util ( src/Internal/Util.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Util.o ) | ||
40 | [21 of 27] Compiling Internal.Modular ( src/Internal/Modular.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Modular.o ) | ||
41 | [22 of 27] Compiling Numeric.LinearAlgebra.Data ( src/Numeric/LinearAlgebra/Data.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/LinearAlgebra/Data.o ) | ||
42 | [23 of 27] Compiling Internal.CG ( src/Internal/CG.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/CG.o ) | ||
43 | [24 of 27] Compiling Numeric.LinearAlgebra ( src/Numeric/LinearAlgebra.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/LinearAlgebra.o ) | ||
44 | [25 of 27] Compiling Numeric.LinearAlgebra.HMatrix ( src/Numeric/LinearAlgebra/HMatrix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/LinearAlgebra/HMatrix.o ) | ||
45 | [26 of 27] Compiling Internal.Static ( src/Internal/Static.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Internal/Static.o ) | ||
46 | [27 of 27] Compiling Numeric.LinearAlgebra.Static ( src/Numeric/LinearAlgebra/Static.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/LinearAlgebra/Static.o ) | ||
47 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/hmatrix-0.19.0.0-2s9G4ERdQNGmPHLhVSJnl | ||
48 | Registering library for hmatrix-0.19.0.0.. | ||
diff --git a/.stack-work/logs/integer-logarithms-1.0.3.log b/.stack-work/logs/integer-logarithms-1.0.3.log deleted file mode 100644 index af31eec..0000000 --- a/.stack-work/logs/integer-logarithms-1.0.3.log +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | Configuring integer-logarithms-1.0.3... | ||
2 | Preprocessing library for integer-logarithms-1.0.3.. | ||
3 | Building library for integer-logarithms-1.0.3.. | ||
4 | [1 of 4] Compiling GHC.Integer.Logarithms.Compat ( src/GHC/Integer/Logarithms/Compat.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/GHC/Integer/Logarithms/Compat.o ) | ||
5 | [2 of 4] Compiling Math.NumberTheory.Logarithms ( src/Math/NumberTheory/Logarithms.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Math/NumberTheory/Logarithms.o ) | ||
6 | [3 of 4] Compiling Math.NumberTheory.Powers.Integer ( src/Math/NumberTheory/Powers/Integer.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Math/NumberTheory/Powers/Integer.o ) | ||
7 | [4 of 4] Compiling Math.NumberTheory.Powers.Natural ( src/Math/NumberTheory/Powers/Natural.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Math/NumberTheory/Powers/Natural.o ) | ||
8 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/integer-logarithms-1.0.3-L1fXvdNnENnEcLpMml0rI7 | ||
9 | Registering library for integer-logarithms-1.0.3.. | ||
diff --git a/.stack-work/logs/intero-0.1.40.log b/.stack-work/logs/intero-0.1.40.log deleted file mode 100644 index 9b36e46..0000000 --- a/.stack-work/logs/intero-0.1.40.log +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | Configuring intero-0.1.40... | ||
2 | Preprocessing executable 'intero' for intero-0.1.40.. | ||
3 | Building executable 'intero' for intero-0.1.40.. | ||
4 | [ 1 of 10] Compiling Intero.Compat ( src/Intero/Compat.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/Intero/Compat.o ) | ||
5 | [ 2 of 10] Compiling GhciTypes ( src/GhciTypes.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/GhciTypes.o ) | ||
6 | [ 3 of 10] Compiling GhciMonad ( src/GhciMonad.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/GhciMonad.o ) | ||
7 | [ 4 of 10] Compiling GhciTags ( src/GhciTags.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/GhciTags.o ) | ||
8 | [ 5 of 10] Compiling GhciInfo ( src/GhciInfo.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/GhciInfo.o ) | ||
9 | [ 6 of 10] Compiling GhciFind ( src/GhciFind.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/GhciFind.o ) | ||
10 | [ 7 of 10] Compiling Completion ( src/Completion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/Completion.o ) | ||
11 | [ 8 of 10] Compiling Paths_intero ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/autogen/Paths_intero.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/Paths_intero.o ) | ||
12 | [ 9 of 10] Compiling InteractiveUI ( src/InteractiveUI.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/InteractiveUI.o ) | ||
13 | |||
14 | [;1msrc/InteractiveUI.hs:116:1: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
15 | Module ‘Network’ is deprecated: | ||
16 | The high level Network interface is no longer supported. Please use Network.Socket.[0m[0m | ||
17 | [;1m[34m |[0m[0m | ||
18 | [;1m[34m116 |[0m[0m [;1m[35mimport qualified Network[0m[0m | ||
19 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^^^^^^^^^^^^^^[0m[0m | ||
20 | [0m[0m[0m | ||
21 | [;1msrc/InteractiveUI.hs:117:1: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
22 | Module ‘Network.BSD’ is deprecated: | ||
23 | This platform dependent module is no longer supported.[0m[0m | ||
24 | [;1m[34m |[0m[0m | ||
25 | [;1m[34m117 |[0m[0m [;1m[35mimport Network.BSD[0m[0m | ||
26 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^^^^^^^^[0m[0m | ||
27 | [0m[0m[0m | ||
28 | [;1msrc/InteractiveUI.hs:695:32: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
29 | In the use of ‘accept’ (imported from Network): | ||
30 | Deprecated: "The high level Network interface is no longer supported. Please use Network.Socket."[0m[0m | ||
31 | [;1m[34m |[0m[0m | ||
32 | [;1m[34m695 |[0m[0m (h, _, _) <- [;1m[35mNetwork.accept[0m[0m sock | ||
33 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^^^^[0m[0m | ||
34 | [0m[0m[0m | ||
35 | [;1msrc/InteractiveUI.hs:731:12: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
36 | In the use of ‘getProtocolNumber’ (imported from Network.BSD): | ||
37 | Deprecated: "This platform dependent module is no longer supported."[0m[0m | ||
38 | [;1m[34m |[0m[0m | ||
39 | [;1m[34m731 |[0m[0m proto <- [;1m[35mgetProtocolNumber[0m[0m "tcp" | ||
40 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^^^^^^^[0m[0m | ||
41 | [0m[0m[0m | ||
42 | [;1msrc/InteractiveUI.hs:737:19: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
43 | In the use of ‘getHostByName’ (imported from Network.BSD): | ||
44 | Deprecated: "This platform dependent module is no longer supported."[0m[0m | ||
45 | [;1m[34m |[0m[0m | ||
46 | [;1m[34m737 |[0m[0m address <- [;1m[35mgetHostByName[0m[0m "127.0.0.1" | ||
47 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^^^[0m[0m | ||
48 | [0m[0m[0m | ||
49 | [;1msrc/InteractiveUI.hs:738:32: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
50 | In the use of ‘aNY_PORT’ (imported from Network.Socket): | ||
51 | Deprecated: "Use defaultPort instead"[0m[0m | ||
52 | [;1m[34m |[0m[0m | ||
53 | [;1m[34m738 |[0m[0m bind sock (SockAddrInet [;1m[35maNY_PORT[0m[0m (hostAddress address)) | ||
54 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^[0m[0m | ||
55 | [0m[0m[0m | ||
56 | [;1msrc/InteractiveUI.hs:738:42: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wdeprecations[0m[0m[;1m][0m[0m[;1m | ||
57 | In the use of ‘hostAddress’ (imported from Network.BSD): | ||
58 | Deprecated: "This platform dependent module is no longer supported."[0m[0m | ||
59 | [;1m[34m |[0m[0m | ||
60 | [;1m[34m738 |[0m[0m bind sock (SockAddrInet aNY_PORT ([;1m[35mhostAddress[0m[0m address)) | ||
61 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^[0m[0m | ||
62 | [0m[0m[0m[10 of 10] Compiling Main ( src/Main.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero-tmp/Main.o ) | ||
63 | Linking .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/intero/intero ... | ||
64 | Installing executable intero in /home/sv/src/8queens/.stack-work/install/x86_64-linux/lts-13.22/8.6.5/bin | ||
diff --git a/.stack-work/logs/invariant-0.5.3.log b/.stack-work/logs/invariant-0.5.3.log deleted file mode 100644 index 6943a4d..0000000 --- a/.stack-work/logs/invariant-0.5.3.log +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | Configuring invariant-0.5.3... | ||
2 | Preprocessing library for invariant-0.5.3.. | ||
3 | Building library for invariant-0.5.3.. | ||
4 | [1 of 4] Compiling Data.Functor.Invariant ( src/Data/Functor/Invariant.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Invariant.o ) | ||
5 | [2 of 4] Compiling Data.Functor.Invariant.TH.Internal ( src/Data/Functor/Invariant/TH/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Invariant/TH/Internal.o ) | ||
6 | [3 of 4] Compiling Data.Functor.Invariant.TH ( src/Data/Functor/Invariant/TH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Invariant/TH.o ) | ||
7 | [4 of 4] Compiling Paths_invariant ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_invariant.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Paths_invariant.o ) | ||
8 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/invariant-0.5.3-COCiLnaO8ceLaFLP8ApMB8 | ||
9 | Registering library for invariant-0.5.3.. | ||
diff --git a/.stack-work/logs/kan-extensions-5.2.log b/.stack-work/logs/kan-extensions-5.2.log deleted file mode 100644 index e95dd1f..0000000 --- a/.stack-work/logs/kan-extensions-5.2.log +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | Configuring kan-extensions-5.2... | ||
2 | Preprocessing library for kan-extensions-5.2.. | ||
3 | Building library for kan-extensions-5.2.. | ||
4 | [ 1 of 13] Compiling Data.Functor.Contravariant.Coyoneda ( src/Data/Functor/Contravariant/Coyoneda.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Coyoneda.o ) | ||
5 | [ 2 of 13] Compiling Data.Functor.Contravariant.Day ( src/Data/Functor/Contravariant/Day.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Day.o ) | ||
6 | [ 3 of 13] Compiling Data.Functor.Contravariant.Yoneda ( src/Data/Functor/Contravariant/Yoneda.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Contravariant/Yoneda.o ) | ||
7 | [ 4 of 13] Compiling Data.Functor.Day ( src/Data/Functor/Day.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Day.o ) | ||
8 | [ 5 of 13] Compiling Data.Functor.Day.Curried ( src/Data/Functor/Day/Curried.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Day/Curried.o ) | ||
9 | [ 6 of 13] Compiling Data.Functor.Invariant.Day ( src/Data/Functor/Invariant/Day.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Invariant/Day.o ) | ||
10 | [ 7 of 13] Compiling Data.Functor.Kan.Lan ( src/Data/Functor/Kan/Lan.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Kan/Lan.o ) | ||
11 | [ 8 of 13] Compiling Data.Functor.Coyoneda ( src/Data/Functor/Coyoneda.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Coyoneda.o ) | ||
12 | [ 9 of 13] Compiling Control.Comonad.Density ( src/Control/Comonad/Density.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Comonad/Density.o ) | ||
13 | [10 of 13] Compiling Control.Monad.Co ( src/Control/Monad/Co.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Co.o ) | ||
14 | [11 of 13] Compiling Data.Functor.Kan.Ran ( src/Data/Functor/Kan/Ran.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Kan/Ran.o ) | ||
15 | [12 of 13] Compiling Control.Monad.Codensity ( src/Control/Monad/Codensity.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Codensity.o ) | ||
16 | [13 of 13] Compiling Data.Functor.Yoneda ( src/Data/Functor/Yoneda.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Yoneda.o ) | ||
17 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/kan-extensions-5.2-GOoLNNVeT9xL7L35wynQJC | ||
18 | Registering library for kan-extensions-5.2.. | ||
diff --git a/.stack-work/logs/lens-4.17.1.log b/.stack-work/logs/lens-4.17.1.log deleted file mode 100644 index ce76cdd..0000000 --- a/.stack-work/logs/lens-4.17.1.log +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack14391/lens-4.17.1/Setup.lhs, /tmp/stack14391/lens-4.17.1/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack14391/lens-4.17.1/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack14391/lens-4.17.1/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring lens-4.17.1... | ||
5 | Preprocessing library for lens-4.17.1.. | ||
6 | Building library for lens-4.17.1.. | ||
7 | [ 1 of 83] Compiling Control.Lens.Internal.CTypes ( src/Control/Lens/Internal/CTypes.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/CTypes.o ) | ||
8 | [ 2 of 83] Compiling Control.Lens.Internal.Coerce ( src/Control/Lens/Internal/Coerce.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Coerce.o ) | ||
9 | [ 3 of 83] Compiling Control.Lens.Internal.Getter ( src/Control/Lens/Internal/Getter.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Getter.o ) | ||
10 | [ 4 of 83] Compiling Control.Lens.Internal.Fold ( src/Control/Lens/Internal/Fold.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Fold.o ) | ||
11 | [ 5 of 83] Compiling Control.Lens.Internal.Instances ( src/Control/Lens/Internal/Instances.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Instances.o ) | ||
12 | [ 6 of 83] Compiling Control.Lens.Internal.Indexed ( src/Control/Lens/Internal/Indexed.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Indexed.o ) | ||
13 | [ 7 of 83] Compiling Control.Lens.Internal.Context ( src/Control/Lens/Internal/Context.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Context.o ) | ||
14 | [ 8 of 83] Compiling Control.Lens.Internal.Bazaar ( src/Control/Lens/Internal/Bazaar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Bazaar.o ) | ||
15 | [ 9 of 83] Compiling Control.Lens.Internal.Iso ( src/Control/Lens/Internal/Iso.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Iso.o ) | ||
16 | [10 of 83] Compiling Control.Lens.Internal.Level ( src/Control/Lens/Internal/Level.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Level.o ) | ||
17 | [11 of 83] Compiling Control.Lens.Internal.List ( src/Control/Lens/Internal/List.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/List.o ) | ||
18 | [12 of 83] Compiling Control.Lens.Internal.Magma ( src/Control/Lens/Internal/Magma.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Magma.o ) | ||
19 | [13 of 83] Compiling Control.Lens.Internal.Prism ( src/Control/Lens/Internal/Prism.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Prism.o ) | ||
20 | [14 of 83] Compiling Control.Lens.Internal.Review ( src/Control/Lens/Internal/Review.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Review.o ) | ||
21 | [15 of 83] Compiling Control.Lens.Internal.Setter ( src/Control/Lens/Internal/Setter.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Setter.o ) | ||
22 | [16 of 83] Compiling Control.Lens.Internal.TH ( src/Control/Lens/Internal/TH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/TH.o ) | ||
23 | [17 of 83] Compiling Control.Lens.Internal.Zoom ( src/Control/Lens/Internal/Zoom.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Zoom.o ) | ||
24 | [18 of 83] Compiling Control.Lens.Internal ( src/Control/Lens/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal.o ) | ||
25 | [19 of 83] Compiling Control.Lens.Type ( src/Control/Lens/Type.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Type.o ) | ||
26 | [20 of 83] Compiling Control.Lens.Setter ( src/Control/Lens/Setter.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Setter.o ) | ||
27 | [21 of 83] Compiling Control.Lens.Lens ( src/Control/Lens/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Lens.o ) | ||
28 | [22 of 83] Compiling Control.Lens.Tuple ( src/Control/Lens/Tuple.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Tuple.o ) | ||
29 | [23 of 83] Compiling Control.Lens.Getter ( src/Control/Lens/Getter.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Getter.o ) | ||
30 | [24 of 83] Compiling Control.Lens.Review ( src/Control/Lens/Review.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Review.o ) | ||
31 | [25 of 83] Compiling Control.Lens.Prism ( src/Control/Lens/Prism.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Prism.o ) | ||
32 | [26 of 83] Compiling Control.Lens.Fold ( src/Control/Lens/Fold.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Fold.o ) | ||
33 | [27 of 83] Compiling Control.Lens.Traversal ( src/Control/Lens/Traversal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Traversal.o ) | ||
34 | [28 of 83] Compiling Control.Lens.Level ( src/Control/Lens/Level.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Level.o ) | ||
35 | [29 of 83] Compiling Control.Lens.Reified ( src/Control/Lens/Reified.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Reified.o ) | ||
36 | [30 of 83] Compiling Control.Lens.Internal.Exception ( src/Control/Lens/Internal/Exception.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Exception.o ) | ||
37 | [31 of 83] Compiling Control.Lens.Indexed ( src/Control/Lens/Indexed.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Indexed.o ) | ||
38 | [32 of 83] Compiling Control.Lens.Internal.ByteString ( src/Control/Lens/Internal/ByteString.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/ByteString.o ) | ||
39 | [33 of 83] Compiling Control.Lens.Equality ( src/Control/Lens/Equality.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Equality.o ) | ||
40 | [34 of 83] Compiling Control.Lens.Iso ( src/Control/Lens/Iso.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Iso.o ) | ||
41 | [35 of 83] Compiling Control.Lens.Empty ( src/Control/Lens/Empty.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Empty.o ) | ||
42 | [36 of 83] Compiling Control.Lens.Cons ( src/Control/Lens/Cons.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Cons.o ) | ||
43 | [37 of 83] Compiling Control.Lens.Internal.Deque ( src/Control/Lens/Internal/Deque.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/Deque.o ) | ||
44 | [38 of 83] Compiling Control.Lens.Wrapped ( src/Control/Lens/Wrapped.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Wrapped.o ) | ||
45 | [39 of 83] Compiling Control.Lens.Zoom ( src/Control/Lens/Zoom.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Zoom.o ) | ||
46 | [40 of 83] Compiling Data.Data.Lens ( src/Data/Data/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Data/Lens.o ) | ||
47 | [41 of 83] Compiling Control.Lens.Plated ( src/Control/Lens/Plated.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Plated.o ) | ||
48 | [42 of 83] Compiling Data.HashSet.Lens ( src/Data/HashSet/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashSet/Lens.o ) | ||
49 | [43 of 83] Compiling Data.Map.Lens ( src/Data/Map/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Map/Lens.o ) | ||
50 | [44 of 83] Compiling Data.Set.Lens ( src/Data/Set/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Set/Lens.o ) | ||
51 | [45 of 83] Compiling Data.Text.Lazy.Lens ( src/Data/Text/Lazy/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Text/Lazy/Lens.o ) | ||
52 | [46 of 83] Compiling Data.Text.Strict.Lens ( src/Data/Text/Strict/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Text/Strict/Lens.o ) | ||
53 | [47 of 83] Compiling Data.Text.Lens ( src/Data/Text/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Text/Lens.o ) | ||
54 | [48 of 83] Compiling Data.Vector.Generic.Lens ( src/Data/Vector/Generic/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Generic/Lens.o ) | ||
55 | [49 of 83] Compiling Control.Lens.Each ( src/Control/Lens/Each.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Each.o ) | ||
56 | [50 of 83] Compiling Control.Lens.At ( src/Control/Lens/At.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/At.o ) | ||
57 | [51 of 83] Compiling Language.Haskell.TH.Lens ( src/Language/Haskell/TH/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Language/Haskell/TH/Lens.o ) | ||
58 | [52 of 83] Compiling Control.Lens.Internal.PrismTH ( src/Control/Lens/Internal/PrismTH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/PrismTH.o ) | ||
59 | [53 of 83] Compiling Control.Lens.Internal.FieldTH ( src/Control/Lens/Internal/FieldTH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Internal/FieldTH.o ) | ||
60 | [54 of 83] Compiling Control.Lens.TH ( src/Control/Lens/TH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/TH.o ) | ||
61 | [55 of 83] Compiling Control.Lens ( src/Control/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens.o ) | ||
62 | [56 of 83] Compiling GHC.Generics.Lens ( src/GHC/Generics/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/GHC/Generics/Lens.o ) | ||
63 | [57 of 83] Compiling Data.Vector.Lens ( src/Data/Vector/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Lens.o ) | ||
64 | [58 of 83] Compiling Data.Typeable.Lens ( src/Data/Typeable/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Typeable/Lens.o ) | ||
65 | [59 of 83] Compiling Data.Tree.Lens ( src/Data/Tree/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Tree/Lens.o ) | ||
66 | [60 of 83] Compiling Data.Sequence.Lens ( src/Data/Sequence/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Sequence/Lens.o ) | ||
67 | [61 of 83] Compiling Data.List.Lens ( src/Data/List/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/List/Lens.o ) | ||
68 | [62 of 83] Compiling Data.IntSet.Lens ( src/Data/IntSet/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/IntSet/Lens.o ) | ||
69 | [63 of 83] Compiling Data.Complex.Lens ( src/Data/Complex/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Complex/Lens.o ) | ||
70 | [64 of 83] Compiling Data.ByteString.Strict.Lens ( src/Data/ByteString/Strict/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/ByteString/Strict/Lens.o ) | ||
71 | [65 of 83] Compiling Data.ByteString.Lazy.Lens ( src/Data/ByteString/Lazy/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/ByteString/Lazy/Lens.o ) | ||
72 | [66 of 83] Compiling Data.ByteString.Lens ( src/Data/ByteString/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/ByteString/Lens.o ) | ||
73 | [67 of 83] Compiling Data.Bits.Lens ( src/Data/Bits/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bits/Lens.o ) | ||
74 | [68 of 83] Compiling Data.Array.Lens ( src/Data/Array/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Array/Lens.o ) | ||
75 | [69 of 83] Compiling Control.Seq.Lens ( src/Control/Seq/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Seq/Lens.o ) | ||
76 | [70 of 83] Compiling Control.Parallel.Strategies.Lens ( src/Control/Parallel/Strategies/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Parallel/Strategies/Lens.o ) | ||
77 | [71 of 83] Compiling Control.Monad.Error.Lens ( src/Control/Monad/Error/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Error/Lens.o ) | ||
78 | [72 of 83] Compiling Control.Lens.Unsound ( src/Control/Lens/Unsound.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Unsound.o ) | ||
79 | [73 of 83] Compiling Control.Lens.Operators ( src/Control/Lens/Operators.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Operators.o ) | ||
80 | [74 of 83] Compiling Control.Lens.Extras ( src/Control/Lens/Extras.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Extras.o ) | ||
81 | [75 of 83] Compiling Control.Lens.Combinators ( src/Control/Lens/Combinators.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Lens/Combinators.o ) | ||
82 | [76 of 83] Compiling Control.Exception.Lens ( src/Control/Exception/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Exception/Lens.o ) | ||
83 | [77 of 83] Compiling Data.Dynamic.Lens ( src/Data/Dynamic/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Dynamic/Lens.o ) | ||
84 | [78 of 83] Compiling Numeric.Lens ( src/Numeric/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/Lens.o ) | ||
85 | [79 of 83] Compiling Numeric.Natural.Lens ( src/Numeric/Natural/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Numeric/Natural/Lens.o ) | ||
86 | [80 of 83] Compiling Paths_lens ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Paths_lens.o ) | ||
87 | [81 of 83] Compiling System.Exit.Lens ( src/System/Exit/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Exit/Lens.o ) | ||
88 | [82 of 83] Compiling System.FilePath.Lens ( src/System/FilePath/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/FilePath/Lens.o ) | ||
89 | [83 of 83] Compiling System.IO.Error.Lens ( src/System/IO/Error/Lens.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/IO/Error/Lens.o ) | ||
90 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/lens-4.17.1-HvuC79b14LY7GYVb6qSW7j | ||
91 | Registering library for lens-4.17.1.. | ||
diff --git a/.stack-work/logs/linear-1.20.9.log b/.stack-work/logs/linear-1.20.9.log deleted file mode 100644 index cae8355..0000000 --- a/.stack-work/logs/linear-1.20.9.log +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack14391/linear-1.20.9/Setup.lhs, /tmp/stack14391/linear-1.20.9/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack14391/linear-1.20.9/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack14391/linear-1.20.9/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring linear-1.20.9... | ||
5 | Preprocessing library for linear-1.20.9.. | ||
6 | Building library for linear-1.20.9.. | ||
7 | [ 1 of 22] Compiling Linear.Binary ( src/Linear/Binary.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Binary.o ) | ||
8 | [ 2 of 22] Compiling Linear.Conjugate ( src/Linear/Conjugate.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Conjugate.o ) | ||
9 | [ 3 of 22] Compiling Linear.Epsilon ( src/Linear/Epsilon.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Epsilon.o ) | ||
10 | [ 4 of 22] Compiling Linear.Instances ( src/Linear/Instances.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Instances.o ) | ||
11 | [ 5 of 22] Compiling Linear.Vector ( src/Linear/Vector.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Vector.o ) | ||
12 | [ 6 of 22] Compiling Linear.Metric ( src/Linear/Metric.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Metric.o ) | ||
13 | [ 7 of 22] Compiling Linear.V ( src/Linear/V.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/V.o ) | ||
14 | [ 8 of 22] Compiling Linear.V1 ( src/Linear/V1.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/V1.o ) | ||
15 | [ 9 of 22] Compiling Linear.V2 ( src/Linear/V2.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/V2.o ) | ||
16 | [10 of 22] Compiling Linear.V3 ( src/Linear/V3.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/V3.o ) | ||
17 | [11 of 22] Compiling Linear.V4 ( src/Linear/V4.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/V4.o ) | ||
18 | [12 of 22] Compiling Linear.V0 ( src/Linear/V0.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/V0.o ) | ||
19 | [13 of 22] Compiling Linear.Quaternion ( src/Linear/Quaternion.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Quaternion.o ) | ||
20 | [14 of 22] Compiling Linear.Plucker ( src/Linear/Plucker.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Plucker.o ) | ||
21 | [15 of 22] Compiling Linear.Trace ( src/Linear/Trace.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Trace.o ) | ||
22 | [16 of 22] Compiling Linear.Plucker.Coincides ( src/Linear/Plucker/Coincides.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Plucker/Coincides.o ) | ||
23 | [17 of 22] Compiling Linear.Matrix ( src/Linear/Matrix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Matrix.o ) | ||
24 | [18 of 22] Compiling Linear.Projection ( src/Linear/Projection.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Projection.o ) | ||
25 | [19 of 22] Compiling Linear.Algebra ( src/Linear/Algebra.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Algebra.o ) | ||
26 | [20 of 22] Compiling Linear.Covector ( src/Linear/Covector.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Covector.o ) | ||
27 | [21 of 22] Compiling Linear.Affine ( src/Linear/Affine.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear/Affine.o ) | ||
28 | [22 of 22] Compiling Linear ( src/Linear.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Linear.o ) | ||
29 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/linear-1.20.9-8i87OQRLMk19j5jCRXHfj4 | ||
30 | Registering library for linear-1.20.9.. | ||
diff --git a/.stack-work/logs/loop-0.3.0.log b/.stack-work/logs/loop-0.3.0.log deleted file mode 100644 index 077c09f..0000000 --- a/.stack-work/logs/loop-0.3.0.log +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | Configuring loop-0.3.0... | ||
2 | Preprocessing library for loop-0.3.0.. | ||
3 | Building library for loop-0.3.0.. | ||
4 | [1 of 2] Compiling Control.Loop ( src/Control/Loop.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Loop.o ) | ||
5 | [2 of 2] Compiling Control.Loop.Internal ( src/Control/Loop/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Loop/Internal.o ) | ||
6 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/loop-0.3.0-KBOFzTkURfGITuXz2VUslN | ||
7 | Registering library for loop-0.3.0.. | ||
diff --git a/.stack-work/logs/matrix-0.3.6.1.log b/.stack-work/logs/matrix-0.3.6.1.log deleted file mode 100644 index 039799c..0000000 --- a/.stack-work/logs/matrix-0.3.6.1.log +++ /dev/null | |||
@@ -1,86 +0,0 @@ | |||
1 | Configuring matrix-0.3.6.1... | ||
2 | Preprocessing library for matrix-0.3.6.1.. | ||
3 | Building library for matrix-0.3.6.1.. | ||
4 | [1 of 1] Compiling Data.Matrix ( Data/Matrix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Matrix.o ) | ||
5 | |||
6 | Data/Matrix.hs:79:1: warning: [-Wunused-imports] | ||
7 | The import of ‘Data.Monoid’ is redundant | ||
8 | except perhaps to import instances from ‘Data.Monoid’ | ||
9 | To import instances alone, use: import Data.Monoid() | ||
10 | | | ||
11 | 79 | import Data.Monoid | ||
12 | | ^^^^^^^^^^^^^^^^^^ | ||
13 | |||
14 | Data/Matrix.hs:81:1: warning: [-Wunused-imports] | ||
15 | The import of ‘Data.Traversable’ is redundant | ||
16 | except perhaps to import instances from ‘Data.Traversable’ | ||
17 | To import instances alone, use: import Data.Traversable() | ||
18 | | | ||
19 | 81 | import Data.Traversable | ||
20 | | ^^^^^^^^^^^^^^^^^^^^^^^ | ||
21 | |||
22 | Data/Matrix.hs:1364:1: warning: [-Winline-rule-shadowing] | ||
23 | Rule "matrix/traceOfSum" may never fire | ||
24 | because ‘trace’ might inline first | ||
25 | Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘trace’ | ||
26 | | | ||
27 | 1364 | "matrix/traceOfSum" | ||
28 | | ^^^^^^^^^^^^^^^^^^^... | ||
29 | |||
30 | Data/Matrix.hs:1364:1: warning: [-Winline-rule-shadowing] | ||
31 | Rule "matrix/traceOfSum" may never fire | ||
32 | because rule "Class op +" for ‘+’ might fire first | ||
33 | Probable fix: add phase [n] or [~n] to the competing rule | ||
34 | | | ||
35 | 1364 | "matrix/traceOfSum" | ||
36 | | ^^^^^^^^^^^^^^^^^^^... | ||
37 | |||
38 | Data/Matrix.hs:1367:1: warning: [-Winline-rule-shadowing] | ||
39 | Rule "matrix/traceOfScale" may never fire | ||
40 | because ‘trace’ might inline first | ||
41 | Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘trace’ | ||
42 | | | ||
43 | 1367 | "matrix/traceOfScale" | ||
44 | | ^^^^^^^^^^^^^^^^^^^^^... | ||
45 | |||
46 | Data/Matrix.hs:1367:1: warning: [-Winline-rule-shadowing] | ||
47 | Rule "matrix/traceOfScale" may never fire | ||
48 | because ‘scaleMatrix’ might inline first | ||
49 | Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘scaleMatrix’ | ||
50 | | | ||
51 | 1367 | "matrix/traceOfScale" | ||
52 | | ^^^^^^^^^^^^^^^^^^^^^... | ||
53 | |||
54 | Data/Matrix.hs:1392:1: warning: [-Winline-rule-shadowing] | ||
55 | Rule "matrix/detLaplaceProduct" may never fire | ||
56 | because ‘detLaplace’ might inline first | ||
57 | Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘detLaplace’ | ||
58 | | | ||
59 | 1392 | "matrix/detLaplaceProduct" | ||
60 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^... | ||
61 | |||
62 | Data/Matrix.hs:1392:1: warning: [-Winline-rule-shadowing] | ||
63 | Rule "matrix/detLaplaceProduct" may never fire | ||
64 | because rule "Class op *" for ‘*’ might fire first | ||
65 | Probable fix: add phase [n] or [~n] to the competing rule | ||
66 | | | ||
67 | 1392 | "matrix/detLaplaceProduct" | ||
68 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^... | ||
69 | |||
70 | Data/Matrix.hs:1395:1: warning: [-Winline-rule-shadowing] | ||
71 | Rule "matrix/detLUProduct" may never fire | ||
72 | because ‘detLU’ might inline first | ||
73 | Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘detLU’ | ||
74 | | | ||
75 | 1395 | "matrix/detLUProduct" | ||
76 | | ^^^^^^^^^^^^^^^^^^^^^... | ||
77 | |||
78 | Data/Matrix.hs:1395:1: warning: [-Winline-rule-shadowing] | ||
79 | Rule "matrix/detLUProduct" may never fire | ||
80 | because rule "Class op *" for ‘*’ might fire first | ||
81 | Probable fix: add phase [n] or [~n] to the competing rule | ||
82 | | | ||
83 | 1395 | "matrix/detLUProduct" | ||
84 | | ^^^^^^^^^^^^^^^^^^^^^... | ||
85 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/matrix-0.3.6.1-CUcUqfmsmAA7saz436AQSk | ||
86 | Registering library for matrix-0.3.6.1.. | ||
diff --git a/.stack-work/logs/network-2.8.0.1.log b/.stack-work/logs/network-2.8.0.1.log deleted file mode 100644 index 779f24a..0000000 --- a/.stack-work/logs/network-2.8.0.1.log +++ /dev/null | |||
@@ -1,132 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack10672/network-2.8.0.1/Setup.hs, /tmp/stack10672/network-2.8.0.1/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack10672/network-2.8.0.1/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack10672/network-2.8.0.1/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring network-2.8.0.1... | ||
5 | configure: WARNING: unrecognized options: --with-compiler | ||
6 | checking build system type... x86_64-pc-linux-gnu | ||
7 | checking host system type... x86_64-pc-linux-gnu | ||
8 | checking for gcc... /usr/bin/gcc | ||
9 | checking whether the C compiler works... yes | ||
10 | checking for C compiler default output file name... a.out | ||
11 | checking for suffix of executables... | ||
12 | checking whether we are cross compiling... no | ||
13 | checking for suffix of object files... o | ||
14 | checking whether we are using the GNU C compiler... yes | ||
15 | checking whether /usr/bin/gcc accepts -g... yes | ||
16 | checking for /usr/bin/gcc option to accept ISO C89... none needed | ||
17 | checking for an ANSI C-conforming const... yes | ||
18 | checking how to run the C preprocessor... /usr/bin/gcc -E | ||
19 | checking for grep that handles long lines and -e... /bin/grep | ||
20 | checking for egrep... /bin/grep -E | ||
21 | checking for ANSI C header files... yes | ||
22 | checking for sys/types.h... yes | ||
23 | checking for sys/stat.h... yes | ||
24 | checking for stdlib.h... yes | ||
25 | checking for string.h... yes | ||
26 | checking for memory.h... yes | ||
27 | checking for strings.h... yes | ||
28 | checking for inttypes.h... yes | ||
29 | checking for stdint.h... yes | ||
30 | checking for unistd.h... yes | ||
31 | checking fcntl.h usability... yes | ||
32 | checking fcntl.h presence... yes | ||
33 | checking for fcntl.h... yes | ||
34 | checking limits.h usability... yes | ||
35 | checking limits.h presence... yes | ||
36 | checking for limits.h... yes | ||
37 | checking for stdlib.h... (cached) yes | ||
38 | checking for sys/types.h... (cached) yes | ||
39 | checking for unistd.h... (cached) yes | ||
40 | checking winsock2.h usability... no | ||
41 | checking winsock2.h presence... no | ||
42 | checking for winsock2.h... no | ||
43 | checking ws2tcpip.h usability... no | ||
44 | checking ws2tcpip.h presence... no | ||
45 | checking for ws2tcpip.h... no | ||
46 | checking arpa/inet.h usability... yes | ||
47 | checking arpa/inet.h presence... yes | ||
48 | checking for arpa/inet.h... yes | ||
49 | checking netdb.h usability... yes | ||
50 | checking netdb.h presence... yes | ||
51 | checking for netdb.h... yes | ||
52 | checking netinet/in.h usability... yes | ||
53 | checking netinet/in.h presence... yes | ||
54 | checking for netinet/in.h... yes | ||
55 | checking netinet/tcp.h usability... yes | ||
56 | checking netinet/tcp.h presence... yes | ||
57 | checking for netinet/tcp.h... yes | ||
58 | checking sys/socket.h usability... yes | ||
59 | checking sys/socket.h presence... yes | ||
60 | checking for sys/socket.h... yes | ||
61 | checking sys/uio.h usability... yes | ||
62 | checking sys/uio.h presence... yes | ||
63 | checking for sys/uio.h... yes | ||
64 | checking sys/un.h usability... yes | ||
65 | checking sys/un.h presence... yes | ||
66 | checking for sys/un.h... yes | ||
67 | checking linux/can.h usability... yes | ||
68 | checking linux/can.h presence... yes | ||
69 | checking for linux/can.h... yes | ||
70 | checking linux/tcp.h usability... yes | ||
71 | checking linux/tcp.h presence... yes | ||
72 | checking for linux/tcp.h... yes | ||
73 | checking net/if.h usability... yes | ||
74 | checking net/if.h presence... yes | ||
75 | checking for net/if.h... yes | ||
76 | checking for readlink... yes | ||
77 | checking for symlink... yes | ||
78 | checking for if_nametoindex... yes | ||
79 | checking for struct msghdr.msg_control... yes | ||
80 | checking for struct msghdr.msg_accrights... no | ||
81 | checking for struct sockaddr.sa_len... no | ||
82 | checking for in_addr_t in netinet/in.h... yes | ||
83 | checking for SO_PEERCRED and struct ucred in sys/socket.h... yes | ||
84 | checking for getpeereid in unistd.h... checking for getpeereid... no | ||
85 | checking for _head_libws2_32_a in -lws2_32... no | ||
86 | checking for getaddrinfo... yes | ||
87 | checking for gai_strerror... yes | ||
88 | checking whether AI_ADDRCONFIG is declared... yes | ||
89 | checking whether AI_ALL is declared... yes | ||
90 | checking whether AI_NUMERICSERV is declared... yes | ||
91 | checking whether AI_V4MAPPED is declared... yes | ||
92 | checking whether IPV6_V6ONLY is declared... yes | ||
93 | checking whether IPPROTO_IP is declared... yes | ||
94 | checking whether IPPROTO_TCP is declared... yes | ||
95 | checking whether IPPROTO_IPV6 is declared... yes | ||
96 | checking for sendfile in sys/sendfile.h... yes | ||
97 | checking for sendfile in sys/socket.h... no | ||
98 | checking for gethostent... yes | ||
99 | checking for accept4... yes | ||
100 | configure: creating ./config.status | ||
101 | config.status: creating network.buildinfo | ||
102 | config.status: creating include/HsNetworkConfig.h | ||
103 | configure: WARNING: unrecognized options: --with-compiler | ||
104 | Preprocessing library for network-2.8.0.1.. | ||
105 | Building library for network-2.8.0.1.. | ||
106 | [ 1 of 11] Compiling Network.Socket.ByteString.IOVec ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/IOVec.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/IOVec.o ) | ||
107 | [ 2 of 11] Compiling Network.Socket.Types ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/Types.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/Types.o ) | ||
108 | [ 3 of 11] Compiling Network.Socket.Internal ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/Internal.o ) | ||
109 | [ 4 of 11] Compiling Network.Socket ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket.o ) | ||
110 | |||
111 | [;1mNetwork/Socket.hsc:267:1: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wunused-imports[0m[0m[;1m][0m[0m[;1m | ||
112 | The qualified import of ‘Control.Exception’ is redundant | ||
113 | except perhaps to import instances from ‘Control.Exception’ | ||
114 | To import instances alone, use: import Control.Exception()[0m[0m | ||
115 | [;1m[34m |[0m[0m | ||
116 | [;1m[34m267 |[0m[0m [;1m[35mimport qualified Control.Exception as E[0m[0m | ||
117 | [;1m[34m |[0m[0m[;1m[35m ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[0m[0m | ||
118 | [0m[0m[0m | ||
119 | [;1mNetwork/Socket.hsc:633:8: [;1m[35mwarning:[0m[0m[;1m [[;1m[35m-Wunused-matches[0m[0m[;1m][0m[0m[;1m | ||
120 | Defined but not used: ‘sock’[0m[0m | ||
121 | [;1m[34m |[0m[0m | ||
122 | [;1m[34m633 |[0m[0m accept [;1m[35msock[0m[0m@(MkSocket s family stype protocol status) = do | ||
123 | [;1m[34m |[0m[0m[;1m[35m ^^^^[0m[0m | ||
124 | [0m[0m[0m[ 5 of 11] Compiling Network.Socket.ByteString.MsgHdr ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/MsgHdr.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/MsgHdr.o ) | ||
125 | [ 6 of 11] Compiling Network.Socket.ByteString.Internal ( Network/Socket/ByteString/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/Internal.o ) | ||
126 | [ 7 of 11] Compiling Network.Socket.ByteString.Lazy.Posix ( Network/Socket/ByteString/Lazy/Posix.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/Lazy/Posix.o ) | ||
127 | [ 8 of 11] Compiling Network.Socket.ByteString ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString.o ) | ||
128 | [ 9 of 11] Compiling Network.Socket.ByteString.Lazy ( Network/Socket/ByteString/Lazy.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/Socket/ByteString/Lazy.o ) | ||
129 | [10 of 11] Compiling Network.BSD ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/BSD.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network/BSD.o ) | ||
130 | [11 of 11] Compiling Network ( Network.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Network.o ) | ||
131 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/network-2.8.0.1-Hmt657UE3v349uYmvUXEvW | ||
132 | Registering library for network-2.8.0.1.. | ||
diff --git a/.stack-work/logs/parallel-3.2.2.0.log b/.stack-work/logs/parallel-3.2.2.0.log deleted file mode 100644 index ff71877..0000000 --- a/.stack-work/logs/parallel-3.2.2.0.log +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | Configuring parallel-3.2.2.0... | ||
2 | Preprocessing library for parallel-3.2.2.0.. | ||
3 | Building library for parallel-3.2.2.0.. | ||
4 | [1 of 3] Compiling Control.Parallel ( Control/Parallel.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Parallel.o ) | ||
5 | [2 of 3] Compiling Control.Seq ( Control/Seq.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Seq.o ) | ||
6 | [3 of 3] Compiling Control.Parallel.Strategies ( Control/Parallel/Strategies.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Parallel/Strategies.o ) | ||
7 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/parallel-3.2.2.0-EGl5SOk48TWHAD161C93aQ | ||
8 | Registering library for parallel-3.2.2.0.. | ||
diff --git a/.stack-work/logs/primitive-0.6.4.0.log b/.stack-work/logs/primitive-0.6.4.0.log deleted file mode 100644 index ca7ec69..0000000 --- a/.stack-work/logs/primitive-0.6.4.0.log +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | Configuring primitive-0.6.4.0... | ||
2 | Preprocessing library for primitive-0.6.4.0.. | ||
3 | Building library for primitive-0.6.4.0.. | ||
4 | [ 1 of 15] Compiling Control.Monad.Primitive ( Control/Monad/Primitive.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Primitive.o ) | ||
5 | [ 2 of 15] Compiling Data.Primitive.Internal.Compat ( Data/Primitive/Internal/Compat.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/Internal/Compat.o ) | ||
6 | [ 3 of 15] Compiling Data.Primitive.Array ( Data/Primitive/Array.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/Array.o ) | ||
7 | [ 4 of 15] Compiling Data.Primitive.MVar ( Data/Primitive/MVar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/MVar.o ) | ||
8 | [ 5 of 15] Compiling Data.Primitive.MachDeps ( Data/Primitive/MachDeps.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/MachDeps.o ) | ||
9 | [ 6 of 15] Compiling Data.Primitive.Internal.Operations ( Data/Primitive/Internal/Operations.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/Internal/Operations.o ) | ||
10 | [ 7 of 15] Compiling Data.Primitive.MutVar ( Data/Primitive/MutVar.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/MutVar.o ) | ||
11 | [ 8 of 15] Compiling Data.Primitive.SmallArray ( Data/Primitive/SmallArray.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/SmallArray.o ) | ||
12 | [ 9 of 15] Compiling Data.Primitive.Types ( Data/Primitive/Types.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/Types.o ) | ||
13 | [10 of 15] Compiling Data.Primitive.ByteArray ( Data/Primitive/ByteArray.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/ByteArray.o ) | ||
14 | [11 of 15] Compiling Data.Primitive.PrimArray ( Data/Primitive/PrimArray.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/PrimArray.o ) | ||
15 | [12 of 15] Compiling Data.Primitive.Ptr ( Data/Primitive/Ptr.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/Ptr.o ) | ||
16 | [13 of 15] Compiling Data.Primitive.Addr ( Data/Primitive/Addr.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/Addr.o ) | ||
17 | [14 of 15] Compiling Data.Primitive.UnliftedArray ( Data/Primitive/UnliftedArray.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive/UnliftedArray.o ) | ||
18 | [15 of 15] Compiling Data.Primitive ( Data/Primitive.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Primitive.o ) | ||
19 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/primitive-0.6.4.0-ILgywxtLpvnAOlEISPpP5b | ||
20 | Registering library for primitive-0.6.4.0.. | ||
diff --git a/.stack-work/logs/profunctors-5.3.log b/.stack-work/logs/profunctors-5.3.log deleted file mode 100644 index bb57208..0000000 --- a/.stack-work/logs/profunctors-5.3.log +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | Configuring profunctors-5.3... | ||
2 | Preprocessing library for profunctors-5.3.. | ||
3 | Building library for profunctors-5.3.. | ||
4 | [ 1 of 16] Compiling Data.Profunctor.Unsafe ( src/Data/Profunctor/Unsafe.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Unsafe.o ) | ||
5 | [ 2 of 16] Compiling Data.Profunctor.Types ( src/Data/Profunctor/Types.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Types.o ) | ||
6 | [ 3 of 16] Compiling Data.Profunctor.Monad ( src/Data/Profunctor/Monad.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Monad.o ) | ||
7 | [ 4 of 16] Compiling Data.Profunctor.Adjunction ( src/Data/Profunctor/Adjunction.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Adjunction.o ) | ||
8 | [ 5 of 16] Compiling Data.Profunctor.Strong ( src/Data/Profunctor/Strong.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Strong.o ) | ||
9 | [ 6 of 16] Compiling Data.Profunctor.Closed ( src/Data/Profunctor/Closed.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Closed.o ) | ||
10 | [ 7 of 16] Compiling Data.Profunctor.Choice ( src/Data/Profunctor/Choice.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Choice.o ) | ||
11 | [ 8 of 16] Compiling Data.Profunctor.Traversing ( src/Data/Profunctor/Traversing.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Traversing.o ) | ||
12 | [ 9 of 16] Compiling Data.Profunctor.Mapping ( src/Data/Profunctor/Mapping.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Mapping.o ) | ||
13 | [10 of 16] Compiling Data.Profunctor ( src/Data/Profunctor.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor.o ) | ||
14 | [11 of 16] Compiling Data.Profunctor.Sieve ( src/Data/Profunctor/Sieve.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Sieve.o ) | ||
15 | [12 of 16] Compiling Data.Profunctor.Rep ( src/Data/Profunctor/Rep.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Rep.o ) | ||
16 | [13 of 16] Compiling Data.Profunctor.Composition ( src/Data/Profunctor/Composition.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Composition.o ) | ||
17 | [14 of 16] Compiling Data.Profunctor.Ran ( src/Data/Profunctor/Ran.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Ran.o ) | ||
18 | [15 of 16] Compiling Data.Profunctor.Cayley ( src/Data/Profunctor/Cayley.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Cayley.o ) | ||
19 | [16 of 16] Compiling Data.Profunctor.Yoneda ( src/Data/Profunctor/Yoneda.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Profunctor/Yoneda.o ) | ||
20 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/profunctors-5.3-IpGd709zs3V8sI6m3XgDzt | ||
21 | Registering library for profunctors-5.3.. | ||
diff --git a/.stack-work/logs/random-1.1.log b/.stack-work/logs/random-1.1.log deleted file mode 100644 index 91ce45f..0000000 --- a/.stack-work/logs/random-1.1.log +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | Warning: random.cabal:15:2: Tabs used as indentation at 15:2, 16:2, 17:2 | ||
2 | Configuring random-1.1... | ||
3 | Preprocessing library for random-1.1.. | ||
4 | Building library for random-1.1.. | ||
5 | [1 of 1] Compiling System.Random ( System/Random.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/System/Random.o ) | ||
6 | |||
7 | System/Random.hs:43:1: warning: [-Wtabs] | ||
8 | Tab character found here, and in 74 further locations. | ||
9 | Please use spaces instead. | ||
10 | | | ||
11 | 43 | ( | ||
12 | | ^^^^^^^^ | ||
13 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/random-1.1-3ypV4EIycgb35PKjTYYr5q | ||
14 | Registering library for random-1.1.. | ||
diff --git a/.stack-work/logs/reflection-2.1.4.log b/.stack-work/logs/reflection-2.1.4.log deleted file mode 100644 index 048e385..0000000 --- a/.stack-work/logs/reflection-2.1.4.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring reflection-2.1.4... | ||
2 | Preprocessing library for reflection-2.1.4.. | ||
3 | Building library for reflection-2.1.4.. | ||
4 | [1 of 1] Compiling Data.Reflection ( fast/Data/Reflection.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Reflection.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/reflection-2.1.4-E9VXTbXoqHZ5rulgGPZOrF | ||
6 | Registering library for reflection-2.1.4.. | ||
diff --git a/.stack-work/logs/scientific-0.3.6.2.log b/.stack-work/logs/scientific-0.3.6.2.log deleted file mode 100644 index bd8a63f..0000000 --- a/.stack-work/logs/scientific-0.3.6.2.log +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | Configuring scientific-0.3.6.2... | ||
2 | Preprocessing library for scientific-0.3.6.2.. | ||
3 | Building library for scientific-0.3.6.2.. | ||
4 | [1 of 5] Compiling GHC.Integer.Compat ( src/GHC/Integer/Compat.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/GHC/Integer/Compat.o ) | ||
5 | [2 of 5] Compiling Utils ( src/Utils.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Utils.o ) | ||
6 | [3 of 5] Compiling Data.Scientific ( src/Data/Scientific.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Scientific.o ) | ||
7 | [4 of 5] Compiling Data.Text.Lazy.Builder.Scientific ( src/Data/Text/Lazy/Builder/Scientific.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Text/Lazy/Builder/Scientific.o ) | ||
8 | [5 of 5] Compiling Data.ByteString.Builder.Scientific ( src/Data/ByteString/Builder/Scientific.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/ByteString/Builder/Scientific.o ) | ||
9 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/scientific-0.3.6.2-Jh87LYpjAZH3EhMJkXeu1S | ||
10 | Registering library for scientific-0.3.6.2.. | ||
diff --git a/.stack-work/logs/semigroupoids-5.3.2.log b/.stack-work/logs/semigroupoids-5.3.2.log deleted file mode 100644 index 678b02b..0000000 --- a/.stack-work/logs/semigroupoids-5.3.2.log +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | [1 of 2] Compiling Main ( /tmp/stack14391/semigroupoids-5.3.2/Setup.lhs, /tmp/stack14391/semigroupoids-5.3.2/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/Main.o ) | ||
2 | [2 of 2] Compiling StackSetupShim ( /home/sv/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack14391/semigroupoids-5.3.2/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/StackSetupShim.o ) | ||
3 | Linking /tmp/stack14391/semigroupoids-5.3.2/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/setup/setup ... | ||
4 | Configuring semigroupoids-5.3.2... | ||
5 | Preprocessing library for semigroupoids-5.3.2.. | ||
6 | Building library for semigroupoids-5.3.2.. | ||
7 | [ 1 of 21] Compiling Data.Functor.Extend ( src/Data/Functor/Extend.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Extend.o ) | ||
8 | [ 2 of 21] Compiling Data.Functor.Bind.Class ( src/Data/Functor/Bind/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Bind/Class.o ) | ||
9 | [ 3 of 21] Compiling Data.Functor.Apply ( src/Data/Functor/Apply.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Apply.o ) | ||
10 | [ 4 of 21] Compiling Data.Functor.Bind ( src/Data/Functor/Bind.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Bind.o ) | ||
11 | [ 5 of 21] Compiling Data.Functor.Bind.Trans ( src/Data/Functor/Bind/Trans.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Bind/Trans.o ) | ||
12 | [ 6 of 21] Compiling Data.Functor.Alt ( src/Data/Functor/Alt.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Alt.o ) | ||
13 | [ 7 of 21] Compiling Data.Bifunctor.Apply ( src/Data/Bifunctor/Apply.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Bifunctor/Apply.o ) | ||
14 | [ 8 of 21] Compiling Data.Functor.Plus ( src/Data/Functor/Plus.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Plus.o ) | ||
15 | [ 9 of 21] Compiling Data.Semigroupoid ( src/Data/Semigroupoid.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroupoid.o ) | ||
16 | [10 of 21] Compiling Data.Semigroupoid.Dual ( src/Data/Semigroupoid/Dual.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroupoid/Dual.o ) | ||
17 | [11 of 21] Compiling Data.Groupoid ( src/Data/Groupoid.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Groupoid.o ) | ||
18 | [12 of 21] Compiling Data.Isomorphism ( src/Data/Isomorphism.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Isomorphism.o ) | ||
19 | [13 of 21] Compiling Data.Semigroupoid.Ob ( src/Data/Semigroupoid/Ob.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroupoid/Ob.o ) | ||
20 | [14 of 21] Compiling Data.Semigroupoid.Static ( src/Data/Semigroupoid/Static.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroupoid/Static.o ) | ||
21 | [15 of 21] Compiling Data.Traversable.Instances ( src/Data/Traversable/Instances.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Traversable/Instances.o ) | ||
22 | [16 of 21] Compiling Data.Semigroup.Foldable.Class ( src/Data/Semigroup/Foldable/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Foldable/Class.o ) | ||
23 | [17 of 21] Compiling Data.Semigroup.Bifoldable ( src/Data/Semigroup/Bifoldable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Bifoldable.o ) | ||
24 | [18 of 21] Compiling Data.Semigroup.Foldable ( src/Data/Semigroup/Foldable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Foldable.o ) | ||
25 | [19 of 21] Compiling Data.Semigroup.Traversable.Class ( src/Data/Semigroup/Traversable/Class.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Traversable/Class.o ) | ||
26 | [20 of 21] Compiling Data.Semigroup.Traversable ( src/Data/Semigroup/Traversable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Traversable.o ) | ||
27 | [21 of 21] Compiling Data.Semigroup.Bitraversable ( src/Data/Semigroup/Bitraversable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Bitraversable.o ) | ||
28 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/semigroupoids-5.3.2-Ka80fCBNMcd1Be50r62zFC | ||
29 | Registering library for semigroupoids-5.3.2.. | ||
diff --git a/.stack-work/logs/semigroups-0.18.5.log b/.stack-work/logs/semigroups-0.18.5.log deleted file mode 100644 index b35abd5..0000000 --- a/.stack-work/logs/semigroups-0.18.5.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring semigroups-0.18.5... | ||
2 | Preprocessing library for semigroups-0.18.5.. | ||
3 | Building library for semigroups-0.18.5.. | ||
4 | [1 of 1] Compiling Data.Semigroup.Generic ( src/Data/Semigroup/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Semigroup/Generic.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/semigroups-0.18.5-6T2lH5F6zyQIdwR3JYKMO3 | ||
6 | Registering library for semigroups-0.18.5.. | ||
diff --git a/.stack-work/logs/split-0.2.3.3.log b/.stack-work/logs/split-0.2.3.3.log deleted file mode 100644 index 48331b9..0000000 --- a/.stack-work/logs/split-0.2.3.3.log +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | Configuring split-0.2.3.3... | ||
2 | Preprocessing library for split-0.2.3.3.. | ||
3 | Building library for split-0.2.3.3.. | ||
4 | [1 of 2] Compiling Data.List.Split.Internals ( src/Data/List/Split/Internals.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/List/Split/Internals.o ) | ||
5 | [2 of 2] Compiling Data.List.Split ( src/Data/List/Split.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/List/Split.o ) | ||
6 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/split-0.2.3.3-6n1iQ0JLFvkeXvJXsAqQc | ||
7 | Registering library for split-0.2.3.3.. | ||
diff --git a/.stack-work/logs/storable-complex-0.2.3.0.log b/.stack-work/logs/storable-complex-0.2.3.0.log deleted file mode 100644 index 6ccdcf2..0000000 --- a/.stack-work/logs/storable-complex-0.2.3.0.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring storable-complex-0.2.3.0... | ||
2 | Preprocessing library for storable-complex-0.2.3.0.. | ||
3 | Building library for storable-complex-0.2.3.0.. | ||
4 | [1 of 1] Compiling Foreign.Storable.Complex ( src/Foreign/Storable/Complex.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Foreign/Storable/Complex.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/storable-complex-0.2.3.0-IqTssBZ2G90J9kRbLSMmF1 | ||
6 | Registering library for storable-complex-0.2.3.0.. | ||
diff --git a/.stack-work/logs/syb-0.7.log b/.stack-work/logs/syb-0.7.log deleted file mode 100644 index d2aea34..0000000 --- a/.stack-work/logs/syb-0.7.log +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | Configuring syb-0.7... | ||
2 | Preprocessing library for syb-0.7.. | ||
3 | Building library for syb-0.7.. | ||
4 | [ 1 of 16] Compiling Data.Generics.Aliases ( src/Data/Generics/Aliases.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Aliases.o ) | ||
5 | [ 2 of 16] Compiling Data.Generics.Basics ( src/Data/Generics/Basics.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Basics.o ) | ||
6 | [ 3 of 16] Compiling Data.Generics.Builders ( src/Data/Generics/Builders.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Builders.o ) | ||
7 | [ 4 of 16] Compiling Data.Generics.Instances ( src/Data/Generics/Instances.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Instances.o ) | ||
8 | [ 5 of 16] Compiling Data.Generics.Schemes ( src/Data/Generics/Schemes.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Schemes.o ) | ||
9 | [ 6 of 16] Compiling Data.Generics.Text ( src/Data/Generics/Text.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Text.o ) | ||
10 | [ 7 of 16] Compiling Data.Generics.Twins ( src/Data/Generics/Twins.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics/Twins.o ) | ||
11 | [ 8 of 16] Compiling Data.Generics ( src/Data/Generics.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Generics.o ) | ||
12 | [ 9 of 16] Compiling Generics.SYB ( src/Generics/SYB.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB.o ) | ||
13 | [10 of 16] Compiling Generics.SYB.Aliases ( src/Generics/SYB/Aliases.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Aliases.o ) | ||
14 | [11 of 16] Compiling Generics.SYB.Basics ( src/Generics/SYB/Basics.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Basics.o ) | ||
15 | [12 of 16] Compiling Generics.SYB.Builders ( src/Generics/SYB/Builders.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Builders.o ) | ||
16 | [13 of 16] Compiling Generics.SYB.Instances ( src/Generics/SYB/Instances.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Instances.o ) | ||
17 | [14 of 16] Compiling Generics.SYB.Schemes ( src/Generics/SYB/Schemes.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Schemes.o ) | ||
18 | [15 of 16] Compiling Generics.SYB.Text ( src/Generics/SYB/Text.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Text.o ) | ||
19 | [16 of 16] Compiling Generics.SYB.Twins ( src/Generics/SYB/Twins.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Generics/SYB/Twins.o ) | ||
20 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/syb-0.7-KRW1LCxdMiCJrmhxCvzo37 | ||
21 | Registering library for syb-0.7.. | ||
diff --git a/.stack-work/logs/tagged-0.8.6.log b/.stack-work/logs/tagged-0.8.6.log deleted file mode 100644 index 94d06e5..0000000 --- a/.stack-work/logs/tagged-0.8.6.log +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | Configuring tagged-0.8.6... | ||
2 | Preprocessing library for tagged-0.8.6.. | ||
3 | Building library for tagged-0.8.6.. | ||
4 | [1 of 2] Compiling Data.Proxy.TH ( src/Data/Proxy/TH.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Proxy/TH.o ) | ||
5 | [2 of 2] Compiling Data.Tagged ( src/Data/Tagged.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Tagged.o ) | ||
6 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/tagged-0.8.6-EiJ2F18RuD68LSMkg0Ly4r | ||
7 | Registering library for tagged-0.8.6.. | ||
diff --git a/.stack-work/logs/th-abstraction-0.2.11.0.log b/.stack-work/logs/th-abstraction-0.2.11.0.log deleted file mode 100644 index 6c97457..0000000 --- a/.stack-work/logs/th-abstraction-0.2.11.0.log +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | Configuring th-abstraction-0.2.11.0... | ||
2 | Preprocessing library for th-abstraction-0.2.11.0.. | ||
3 | Building library for th-abstraction-0.2.11.0.. | ||
4 | [1 of 2] Compiling Language.Haskell.TH.Datatype.Internal ( src/Language/Haskell/TH/Datatype/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Language/Haskell/TH/Datatype/Internal.o ) | ||
5 | [2 of 2] Compiling Language.Haskell.TH.Datatype ( src/Language/Haskell/TH/Datatype.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Language/Haskell/TH/Datatype.o ) | ||
6 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/th-abstraction-0.2.11.0-DAhuCgi08HTBWsDjm9nrOq | ||
7 | Registering library for th-abstraction-0.2.11.0.. | ||
diff --git a/.stack-work/logs/transformers-base-0.4.5.2.log b/.stack-work/logs/transformers-base-0.4.5.2.log deleted file mode 100644 index 2c3a2bc..0000000 --- a/.stack-work/logs/transformers-base-0.4.5.2.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring transformers-base-0.4.5.2... | ||
2 | Preprocessing library for transformers-base-0.4.5.2.. | ||
3 | Building library for transformers-base-0.4.5.2.. | ||
4 | [1 of 1] Compiling Control.Monad.Base ( src/Control/Monad/Base.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Base.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/transformers-base-0.4.5.2-FZmnqdpGRpbAstl7i9dBCk | ||
6 | Registering library for transformers-base-0.4.5.2.. | ||
diff --git a/.stack-work/logs/transformers-compat-0.6.5.log b/.stack-work/logs/transformers-compat-0.6.5.log deleted file mode 100644 index 3b4d19c..0000000 --- a/.stack-work/logs/transformers-compat-0.6.5.log +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | Configuring transformers-compat-0.6.5... | ||
2 | Preprocessing library for transformers-compat-0.6.5.. | ||
3 | Building library for transformers-compat-0.6.5.. | ||
4 | [1 of 4] Compiling Control.Monad.Trans.Instances ( src/Control/Monad/Trans/Instances.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Control/Monad/Trans/Instances.o ) | ||
5 | [2 of 4] Compiling Data.Functor.Classes.Generic.Internal ( generics/Data/Functor/Classes/Generic/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Classes/Generic/Internal.o ) | ||
6 | [3 of 4] Compiling Data.Functor.Classes.Generic ( generics/Data/Functor/Classes/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Functor/Classes/Generic.o ) | ||
7 | [4 of 4] Compiling Paths_transformers_compat ( .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_transformers_compat.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Paths_transformers_compat.o ) | ||
8 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/transformers-compat-0.6.5-JTHfwAgpAU6AqyWxijPF3Z | ||
9 | Registering library for transformers-compat-0.6.5.. | ||
diff --git a/.stack-work/logs/unordered-containers-0.2.9.0.log b/.stack-work/logs/unordered-containers-0.2.9.0.log deleted file mode 100644 index cdc1b08..0000000 --- a/.stack-work/logs/unordered-containers-0.2.9.0.log +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | Configuring unordered-containers-0.2.9.0... | ||
2 | Preprocessing library for unordered-containers-0.2.9.0.. | ||
3 | Building library for unordered-containers-0.2.9.0.. | ||
4 | [1 of 8] Compiling Data.HashMap.List ( Data/HashMap/List.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/List.o ) | ||
5 | [2 of 8] Compiling Data.HashMap.Unsafe ( Data/HashMap/Unsafe.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/Unsafe.o ) | ||
6 | [3 of 8] Compiling Data.HashMap.Array ( Data/HashMap/Array.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/Array.o ) | ||
7 | |||
8 | Data/HashMap/Array.hs:89:1-9: warning: [-Wmissing-signatures] | ||
9 | Top-level binding with no type signature: | ||
10 | newArray# :: ghc-prim-0.5.3:GHC.Prim.Int# | ||
11 | -> a | ||
12 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
13 | -> (# ghc-prim-0.5.3:GHC.Prim.State# d, SmallMutableArray# d a #) | ||
14 | | | ||
15 | 89 | newArray# = newSmallArray# | ||
16 | | ^^^^^^^^^ | ||
17 | |||
18 | Data/HashMap/Array.hs:90:1-10: warning: [-Wmissing-signatures] | ||
19 | Top-level binding with no type signature: | ||
20 | readArray# :: SmallMutableArray# d a | ||
21 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
22 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
23 | -> (# ghc-prim-0.5.3:GHC.Prim.State# d, a #) | ||
24 | | | ||
25 | 90 | readArray# = readSmallArray# | ||
26 | | ^^^^^^^^^^ | ||
27 | |||
28 | Data/HashMap/Array.hs:91:1-11: warning: [-Wmissing-signatures] | ||
29 | Top-level binding with no type signature: | ||
30 | writeArray# :: SmallMutableArray# d a | ||
31 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
32 | -> a | ||
33 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
34 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
35 | | | ||
36 | 91 | writeArray# = writeSmallArray# | ||
37 | | ^^^^^^^^^^^ | ||
38 | |||
39 | Data/HashMap/Array.hs:92:1-11: warning: [-Wmissing-signatures] | ||
40 | Top-level binding with no type signature: | ||
41 | indexArray# :: SmallArray# a | ||
42 | -> ghc-prim-0.5.3:GHC.Prim.Int# -> (# a #) | ||
43 | | | ||
44 | 92 | indexArray# = indexSmallArray# | ||
45 | | ^^^^^^^^^^^ | ||
46 | |||
47 | Data/HashMap/Array.hs:93:1-18: warning: [-Wmissing-signatures] | ||
48 | Top-level binding with no type signature: | ||
49 | unsafeFreezeArray# :: SmallMutableArray# d a | ||
50 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
51 | -> (# ghc-prim-0.5.3:GHC.Prim.State# d, SmallArray# a #) | ||
52 | | | ||
53 | 93 | unsafeFreezeArray# = unsafeFreezeSmallArray# | ||
54 | | ^^^^^^^^^^^^^^^^^^ | ||
55 | |||
56 | Data/HashMap/Array.hs:94:1-16: warning: [-Wmissing-signatures] | ||
57 | Top-level binding with no type signature: | ||
58 | unsafeThawArray# :: SmallArray# a | ||
59 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
60 | -> (# ghc-prim-0.5.3:GHC.Prim.State# d, SmallMutableArray# d a #) | ||
61 | | | ||
62 | 94 | unsafeThawArray# = unsafeThawSmallArray# | ||
63 | | ^^^^^^^^^^^^^^^^ | ||
64 | |||
65 | Data/HashMap/Array.hs:95:1-12: warning: [-Wmissing-signatures] | ||
66 | Top-level binding with no type signature: | ||
67 | sizeofArray# :: SmallArray# a -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
68 | | | ||
69 | 95 | sizeofArray# = sizeofSmallArray# | ||
70 | | ^^^^^^^^^^^^ | ||
71 | |||
72 | Data/HashMap/Array.hs:96:1-10: warning: [-Wmissing-signatures] | ||
73 | Top-level binding with no type signature: | ||
74 | copyArray# :: SmallArray# a | ||
75 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
76 | -> SmallMutableArray# d a | ||
77 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
78 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
79 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
80 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
81 | | | ||
82 | 96 | copyArray# = copySmallArray# | ||
83 | | ^^^^^^^^^^ | ||
84 | |||
85 | Data/HashMap/Array.hs:97:1-10: warning: [-Wmissing-signatures] | ||
86 | Top-level binding with no type signature: | ||
87 | thawArray# :: SmallArray# a | ||
88 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
89 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
90 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
91 | -> (# ghc-prim-0.5.3:GHC.Prim.State# d, SmallMutableArray# d a #) | ||
92 | | | ||
93 | 97 | thawArray# = thawSmallArray# | ||
94 | | ^^^^^^^^^^ | ||
95 | |||
96 | Data/HashMap/Array.hs:98:1-19: warning: [-Wmissing-signatures] | ||
97 | Top-level binding with no type signature: | ||
98 | sizeofMutableArray# :: SmallMutableArray# d a | ||
99 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
100 | | | ||
101 | 98 | sizeofMutableArray# = sizeofSmallMutableArray# | ||
102 | | ^^^^^^^^^^^^^^^^^^^ | ||
103 | |||
104 | Data/HashMap/Array.hs:99:1-17: warning: [-Wmissing-signatures] | ||
105 | Top-level binding with no type signature: | ||
106 | copyMutableArray# :: SmallMutableArray# d a | ||
107 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
108 | -> SmallMutableArray# d a | ||
109 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
110 | -> ghc-prim-0.5.3:GHC.Prim.Int# | ||
111 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
112 | -> ghc-prim-0.5.3:GHC.Prim.State# d | ||
113 | | | ||
114 | 99 | copyMutableArray# = copySmallMutableArray# | ||
115 | | ^^^^^^^^^^^^^^^^^ | ||
116 | [4 of 8] Compiling Data.HashMap.UnsafeShift ( Data/HashMap/UnsafeShift.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/UnsafeShift.o ) | ||
117 | [5 of 8] Compiling Data.HashMap.Base ( Data/HashMap/Base.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/Base.o ) | ||
118 | [6 of 8] Compiling Data.HashMap.Strict ( Data/HashMap/Strict.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/Strict.o ) | ||
119 | [7 of 8] Compiling Data.HashMap.Lazy ( Data/HashMap/Lazy.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashMap/Lazy.o ) | ||
120 | [8 of 8] Compiling Data.HashSet ( Data/HashSet.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/HashSet.o ) | ||
121 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/unordered-containers-0.2.9.0-BRWkoSTuML1cQdpep6Oin | ||
122 | Registering library for unordered-containers-0.2.9.0.. | ||
diff --git a/.stack-work/logs/vector-0.12.0.3.log b/.stack-work/logs/vector-0.12.0.3.log deleted file mode 100644 index 400d6a6..0000000 --- a/.stack-work/logs/vector-0.12.0.3.log +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | Configuring vector-0.12.0.3... | ||
2 | Preprocessing library for vector-0.12.0.3.. | ||
3 | Building library for vector-0.12.0.3.. | ||
4 | [ 1 of 21] Compiling Data.Vector.Fusion.Util ( Data/Vector/Fusion/Util.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Fusion/Util.o ) | ||
5 | [ 2 of 21] Compiling Data.Vector.Fusion.Bundle.Size ( Data/Vector/Fusion/Bundle/Size.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Fusion/Bundle/Size.o ) | ||
6 | [ 3 of 21] Compiling Data.Vector.Generic.Mutable.Base ( Data/Vector/Generic/Mutable/Base.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Generic/Mutable/Base.o ) | ||
7 | [ 4 of 21] Compiling Data.Vector.Generic.Base ( Data/Vector/Generic/Base.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Generic/Base.o ) | ||
8 | [ 5 of 21] Compiling Data.Vector.Internal.Check ( Data/Vector/Internal/Check.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Internal/Check.o ) | ||
9 | [ 6 of 21] Compiling Data.Vector.Fusion.Stream.Monadic ( Data/Vector/Fusion/Stream/Monadic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Fusion/Stream/Monadic.o ) | ||
10 | [ 7 of 21] Compiling Data.Vector.Fusion.Bundle.Monadic ( Data/Vector/Fusion/Bundle/Monadic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Fusion/Bundle/Monadic.o ) | ||
11 | [ 8 of 21] Compiling Data.Vector.Fusion.Bundle ( Data/Vector/Fusion/Bundle.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Fusion/Bundle.o ) | ||
12 | [ 9 of 21] Compiling Data.Vector.Generic.Mutable ( Data/Vector/Generic/Mutable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Generic/Mutable.o ) | ||
13 | [10 of 21] Compiling Data.Vector.Generic.New ( Data/Vector/Generic/New.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Generic/New.o ) | ||
14 | [11 of 21] Compiling Data.Vector.Generic ( Data/Vector/Generic.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Generic.o ) | ||
15 | [12 of 21] Compiling Data.Vector.Mutable ( Data/Vector/Mutable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Mutable.o ) | ||
16 | [13 of 21] Compiling Data.Vector ( Data/Vector.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector.o ) | ||
17 | [14 of 21] Compiling Data.Vector.Primitive.Mutable ( Data/Vector/Primitive/Mutable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Primitive/Mutable.o ) | ||
18 | [15 of 21] Compiling Data.Vector.Primitive ( Data/Vector/Primitive.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Primitive.o ) | ||
19 | [16 of 21] Compiling Data.Vector.Storable.Internal ( Data/Vector/Storable/Internal.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Storable/Internal.o ) | ||
20 | [17 of 21] Compiling Data.Vector.Storable.Mutable ( Data/Vector/Storable/Mutable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Storable/Mutable.o ) | ||
21 | [18 of 21] Compiling Data.Vector.Storable ( Data/Vector/Storable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Storable.o ) | ||
22 | [19 of 21] Compiling Data.Vector.Unboxed.Base ( Data/Vector/Unboxed/Base.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Unboxed/Base.o ) | ||
23 | [20 of 21] Compiling Data.Vector.Unboxed ( Data/Vector/Unboxed.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Unboxed.o ) | ||
24 | [21 of 21] Compiling Data.Vector.Unboxed.Mutable ( Data/Vector/Unboxed/Mutable.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Vector/Unboxed/Mutable.o ) | ||
25 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/vector-0.12.0.3-2LEYu9M2i7lERDtz76XG3n | ||
26 | Registering library for vector-0.12.0.3.. | ||
diff --git a/.stack-work/logs/void-0.7.3.log b/.stack-work/logs/void-0.7.3.log deleted file mode 100644 index e5121af..0000000 --- a/.stack-work/logs/void-0.7.3.log +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | Configuring void-0.7.3... | ||
2 | Preprocessing library for void-0.7.3.. | ||
3 | Building library for void-0.7.3.. | ||
4 | [1 of 1] Compiling Data.Void.Unsafe ( src/Data/Void/Unsafe.hs, .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/Data/Void/Unsafe.o ) | ||
5 | Installing library in /home/sv/.stack/snapshots/x86_64-linux/lts-13.22/8.6.5/lib/x86_64-linux-ghc-8.6.5/void-0.7.3-5xXWQQsTYbKFlr3KfNvyL8 | ||
6 | Registering library for void-0.7.3.. | ||
diff --git a/8queens.cabal b/8queens.cabal index be1e2b2..45f38f8 100644 --- a/8queens.cabal +++ b/8queens.cabal | |||
@@ -14,6 +14,7 @@ cabal-version: >=1.10 | |||
14 | extra-source-files: README.md | 14 | extra-source-files: README.md |
15 | 15 | ||
16 | executable 8queens | 16 | executable 8queens |
17 | ghc-options: -O2 -W -Wall -threaded -rtsopts -with-rtsopts=-N | ||
17 | hs-source-dirs: src | 18 | hs-source-dirs: src |
18 | main-is: Main.hs | 19 | main-is: Main.hs |
19 | default-language: Haskell2010 | 20 | default-language: Haskell2010 |