@@ -1,8 +1,6 @@
1−Cabal-Version: 2.2
21Name: project-m36
3−Version: 0.9.3
4−License: MIT
5−--note that this license specification is erroneous and only labeled MIT to appease hackage which does not recognize public domain packages in cabal >2.2- Project:M36 is dedicated to the public domain
2+Version: 0.8.2
3+License: PublicDomain
64Build-Type: Simple
75Homepage: https://github.com/agentm/project-m36
86Bug-Reports: https://github.com/agentm/project-m36/issues
@@ -10,6 +8,7 @@ Author: AgentM
108Stability: experimental
119Category: Relational Algebra
1210Maintainer: agentm@themactionfaction.com
11+Cabal-Version: >= 1.10
1312Synopsis: Relational Algebra Engine
1413Description: A relational algebra engine which can be used to persist and query Haskell data types.
1514Extra-Source-Files: Changelog.markdown README.markdown
@@ -35,7 +34,7 @@ Flag haskell-scripting
3534 Default: True
3635
3736Library
38− Build-Depends: base>=4.8 && < 4.15, ghc-paths, mtl, containers, unordered-containers, hashable, haskeline, directory, MonadRandom, random-shuffle, uuid >= 1.3.12, cassava >= 0.4.5.1 && < 0.6, text, bytestring, deepseq, deepseq-generics, vector, parallel, monad-parallel, exceptions, transformers, gnuplot, filepath, zlib, directory, temporary, stm, time, hashable-time, old-locale, rset, attoparsec, either, base64-bytestring, data-interval, extended-reals, aeson >= 1.1, path-pieces, conduit, resourcet, http-api-data, semigroups, QuickCheck, quickcheck-instances, list-t, stm-containers >= 0.2.15, foldl, optparse-applicative, Glob, cryptohash-sha256, text-manipulate >= 0.2.0.1 && < 0.4, winery, curryer-rpc, network, async, vector-instances, recursion-schemes, streamly >= 0.7.2, convertible
37+ Build-Depends: base>=4.8 && < 4.15, ghc-paths, mtl, containers, unordered-containers, hashable, haskeline, directory, MonadRandom, random-shuffle, uuid >= 1.3.12, cassava >= 0.4.5.1 && < 0.6, text, bytestring, deepseq, deepseq-generics, vector, parallel, monad-parallel, exceptions, transformers, gnuplot, binary, filepath, zlib, directory, vector-binary-instances, temporary, stm, time, hashable-time, old-locale, rset, attoparsec, either, base64-bytestring, data-interval, extended-reals, network-transport, aeson >= 1.1, path-pieces, conduit, resourcet, http-api-data, semigroups, QuickCheck, quickcheck-instances, distributed-process-client-server >= 0.2.3, distributed-process >= 0.7.4, distributed-process-extras >= 0.3.2, distributed-process-async >= 0.2.4.1, network-transport-tcp >= 0.6.0, network-transport, list-t, stm-containers >= 0.2.15, foldl, optparse-applicative, Glob, cryptohash-sha256, text-manipulate >= 0.2.0.1 && < 0.3, vector-instances
3938 if flag(haskell-scripting)
4039 Build-Depends: ghc >= 8.2 && < 8.11
4140 CPP-Options: -DPM36_HASKELL_SCRIPTING
@@ -52,8 +51,6 @@ Library
5251 ProjectM36.TransactionGraph.Merge,
5352 ProjectM36.TransGraphRelationalExpression,
5453 ProjectM36.Base,
55− ProjectM36.Serialise.Base,
56− ProjectM36.Serialise.Error,
5754 ProjectM36.DataFrame,
5855 ProjectM36.Attribute,
5956 ProjectM36.AttributeNames,
@@ -63,7 +60,6 @@ Library
6360 ProjectM36.AtomFunction,
6461 ProjectM36.AtomFunctionError,
6562 ProjectM36.ScriptSession,
66− ProjectM36.Shortcuts,
6763 ProjectM36.DatabaseContextFunction,
6864 ProjectM36.DatabaseContextFunctionError,
6965 ProjectM36.DatabaseContextFunctionUtils,
@@ -114,10 +110,6 @@ Library
114110 ProjectM36.Server.EntryPoints,
115111 ProjectM36.Server.ParseArgs,
116112 ProjectM36.Server.RemoteCallTypes,
117− ProjectM36.Serialise.AtomFunctionError,
118− ProjectM36.Serialise.DataFrame,
119− ProjectM36.Serialise.DatabaseContextFunctionError,
120− ProjectM36.Serialise.IsomorphicSchema,
121113 ProjectM36.Session,
122114 ProjectM36.Sessions,
123115 ProjectM36.Transaction.Persist,
@@ -136,14 +128,14 @@ Library
136128 Other-Modules: ProjectM36.Win32Handle
137129 else
138130 --219- too many exported symbols under Windows and GHC 8.4
139− GHC-Options: -rdynamic -fexternal-interpreter
131+ GHC-Options: -rdynamic
140132 C-sources: cbits/DirectoryFsync.c, cbits/darwin_statfs.c
141133 Build-Depends: unix
142134 CC-Options: -fPIC
143135 Hs-Source-Dirs: ./src/lib
144136 Default-Language: Haskell2010
145137 Default-Extensions: OverloadedStrings, CPP
146− if !flag(stack)
138+ if !flag(stack)
147139 Build-Depends: deferred-folds
148140
149141Executable tutd
@@ -163,11 +155,13 @@ Executable tutd
163155 MonadRandom, MonadRandom,
164156 vector,
165157 text,
158+ vector-binary-instances,
166159 time,
167160 hashable-time,
168161 bytestring,
169162 stm,
170163 deepseq,
164+ binary,
171165 data-interval,
172166 parallel,
173167 cassava,
@@ -175,7 +169,7 @@ Executable tutd
175169 directory,
176170 filepath,
177171 temporary,
178− megaparsec >= 5.2.0 && < 10,
172+ megaparsec >= 5.2.0 && < 9,
179173 haskeline,
180174 random, MonadRandom,
181175 base64-bytestring,
@@ -184,14 +178,7 @@ Executable tutd
184178 stm-containers >= 1.0.0,
185179 list-t,
186180 parser-combinators,
187− curryer-rpc,
188− prettyprinter,
189− cryptohash-sha256,
190− --due to decode signature change
191− base16-bytestring >= 1.0.0.0,
192− http-conduit,
193− modern-uri,
194− http-types
181+ prettyprinter
195182 Other-Modules: TutorialD.Interpreter,
196183 TutorialD.Interpreter.Base,
197184 TutorialD.Interpreter.DatabaseContextExpr,
@@ -223,8 +210,9 @@ Executable project-m36-server
223210 Build-Depends: ghc >= 8.2 && < 8.11
224211 Build-Depends: base,
225212 ghc-paths,
226− transformers,
227213 project-m36,
214+ binary,
215+ transformers,
228216 temporary,
229217 data-interval,
230218 deepseq,
@@ -237,6 +225,7 @@ Executable project-m36-server
237225 optparse-applicative,
238226 hashable-time,
239227 time,
228+ vector-binary-instances,
240229 text,
241230 deepseq-generics,
242231 mtl,
@@ -258,7 +247,7 @@ Executable project-m36-server
258247Executable bigrel
259248 Default-Language: Haskell2010
260249 Default-Extensions: OverloadedStrings
261− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t, ghc, ghc-paths, transformers, project-m36, random, MonadRandom, semigroups, parser-combinators
250+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t, ghc, ghc-paths, transformers, project-m36, random, MonadRandom, semigroups, parser-combinators
262251 Other-Modules: TutorialD.Interpreter.Base,
263252 TutorialD.Interpreter.DatabaseContextExpr,
264253 TutorialD.Interpreter.RelationalExpr,
@@ -269,13 +258,6 @@ Executable bigrel
269258 if flag(profiler)
270259 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
271260
272−Common commontest
273− Default-Language: Haskell2010
274− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, parser-combinators, winery, curryer-rpc, prettyprinter, base64-bytestring, modern-uri, http-types, http-conduit, base16-bytestring,cryptohash-sha256
275− Default-Extensions: OverloadedStrings
276− GHC-Options: -Wall -threaded
277− Hs-Source-Dirs: test, src/bin
278−
279261Benchmark basic-benchmark
280262 Default-Language: Haskell2010
281263 Default-Extensions: OverloadedStrings
@@ -287,131 +269,157 @@ Benchmark basic-benchmark
287269 if flag(profiler)
288270 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
289271
290−--benchmark inserts, updates, deletes for a basic use-case to shake out any space leaks
291−Benchmark update-exprs
292− Default-Language: Haskell2010
293− Default-Extensions: OverloadedStrings
294− Build-Depends: base, criterion, project-m36, text, winery
295− Main-Is: benchmark/Server.hs
296− Type: exitcode-stdio-1.0
297− GHC-Options: -Wall -threaded -rtsopts
298− HS-Source-Dirs: ./src/bin
299− if flag(profiler)
300− GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall -fexternal-interpreter
301−
302272Test-Suite test-tutoriald
303− import: commontest
273+ Default-Language: Haskell2010
274+ Default-Extensions: OverloadedStrings
304275 type: exitcode-stdio-1.0
305− main-is: TutorialD/InterpreterTest.hs
276+ main-is: test/TutorialD/Interpreter.hs
277+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, list-t, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
306278 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator, TutorialD.Printer
307− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, list-t, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
279+ GHC-Options: -Wall -threaded
280+ Hs-Source-Dirs: ./src/bin, ., test
308281
309282Test-Suite test-tutoriald-atomfunctionscript
310− import: commontest
283+ Default-Language: Haskell2010
284+ Default-Extensions: OverloadedStrings
311285 type: exitcode-stdio-1.0
312286 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.SchemaOperator, TutorialD.Printer
313− main-is: TutorialD/Interpreter/AtomFunctionScript.hs
287+ main-is: test/TutorialD/Interpreter/AtomFunctionScript.hs
288+ Build-Depends: base, HUnit, project-m36, uuid, containers, megaparsec, text, vector, directory, bytestring, mtl, haskeline, random, MonadRandom, semigroups, time, parser-combinators, prettyprinter, base64-bytestring
289+ GHC-Options: -Wall -threaded
290+ Hs-Source-Dirs: ./src/bin, ./test, .
314291
315292Test-Suite test-tutoriald-databasecontextfunctionscript
316− import: commontest
293+ Default-Language: Haskell2010
294+ Default-Extensions: OverloadedStrings
317295 type: exitcode-stdio-1.0
318296 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.SchemaOperator, TutorialD.Printer
319− main-is: TutorialD/Interpreter/DatabaseContextFunctionScript.hs
297+ main-is: test/TutorialD/Interpreter/DatabaseContextFunctionScript.hs
298+ Build-Depends: base, HUnit, project-m36, uuid, containers, megaparsec, text, vector, directory, bytestring, mtl, haskeline, random, MonadRandom, semigroups, time, parser-combinators, prettyprinter, base64-bytestring
299+ GHC-Options: -Wall -threaded
300+ Hs-Source-Dirs: ./src/bin, ./test, .
320301
321302Test-Suite test-relation
322− import: commontest
303+ Default-Language: Haskell2010
304+ Default-Extensions: OverloadedStrings
323305 type: exitcode-stdio-1.0
324− main-is: Relation/Basic.hs
306+ main-is: test/Relation/Basic.hs
307+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, transformers
308+ GHC-Options: -Wall -threaded
325309
326310Test-Suite test-static-optimizer
327− import: commontest
311+ Default-Language: Haskell2010
312+ Default-Extensions: OverloadedStrings
328313 type: exitcode-stdio-1.0
329− main-is: Relation/StaticOptimizer.hs
314+ main-is: test/Relation/StaticOptimizer.hs
315+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, transformers
316+ GHC-Options: -Wall -threaded
330317
331318Test-Suite test-transactiongraph-persist
332− import: commontest
319+ Default-Language: Haskell2010
320+ Default-Extensions: OverloadedStrings
333321 type: exitcode-stdio-1.0
334− main-is: TransactionGraph/Persist.hs
322+ main-is: test/TransactionGraph/Persist.hs
323+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
335324 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Printer
325+ Hs-Source-Dirs: ., ./src/bin
326+ GHC-Options: -Wall -threaded
336327
337328Test-Suite test-relation-import-csv
338− import: commontest
329+ Default-Language: Haskell2010
330+ Default-Extensions: OverloadedStrings
339331 type: exitcode-stdio-1.0
340− main-is: Relation/Import/CSV.hs
332+ main-is: test/Relation/Import/CSV.hs
333+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, prettyprinter
334+ GHC-Options: -Wall -threaded
341335
342336Test-Suite test-tutoriald-import-tutoriald
343− import: commontest
337+ Default-Language: Haskell2010
338+ Default-Extensions: OverloadedStrings
344339 type: exitcode-stdio-1.0
345− main-is: TutorialD/Interpreter/Import/ImportTest.hs
340+ main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
341+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
346342 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Printer
343+ GHC-Options: -Wall -threaded
344+ Hs-Source-Dirs: ., ./src/bin
347345
348346Test-Suite test-relation-export-csv
349− import: commontest
347+ Default-Language: Haskell2010
348+ Default-Extensions: OverloadedStrings
350349 type: exitcode-stdio-1.0
351− main-is: Relation/Export/CSV.hs
350+ main-is: test/Relation/Export/CSV.hs
351+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, prettyprinter
352+ GHC-Options: -Wall -threaded
352353
353354Test-Suite test-transactiongraph-merge
354− import: commontest
355+ Default-Language: Haskell2010
356+ Default-Extensions: OverloadedStrings
355357 type: exitcode-stdio-1.0
356− main-is: TransactionGraph/Merge.hs
357−
358+ main-is: test/TransactionGraph/Merge.hs
359+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, template-haskell, transformers, aeson, conduit, either, path-pieces, http-api-data, stm-containers, list-t, project-m36
360+ GHC-Options: -Wall -threaded
358361
359362Test-Suite test-prettyprinter
360− import: commontest
363+ Default-Language: Haskell2010
364+ Default-Extensions: OverloadedStrings
361365 type: exitcode-stdio-1.0
362− main-is: TutorialD/PrinterTest.hs
366+ main-is: test/TutorialD/Printer.hs
367+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, template-haskell, transformers, aeson, conduit, either, path-pieces, http-api-data, stm-containers, list-t, project-m36, prettyprinter, random, MonadRandom, parser-combinators, base64-bytestring
368+ GHC-Options: -Wall -threaded
363369 Other-Modules: TutorialD.Printer, TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types
370+ Hs-Source-Dirs: ., ./src/bin
364371
365372benchmark bench
366− import: commontest
373+ Default-Language: Haskell2010
374+ Default-Extensions: OverloadedStrings
367375 type: exitcode-stdio-1.0
368376 main-is: benchmark/Relation.hs
377+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, criterion, stm-containers, project-m36
378+ GHC-Options: -Wall -rtsopts -threaded
379+ Hs-Source-Dirs: ./src/bin
369380
370381Test-Suite test-server
371− import: commontest
382+ Default-Language: Haskell2010
383+ Default-Extensions: OverloadedStrings
372384 type: exitcode-stdio-1.0
373− main-is: Server/Main.hs
374−
385+ main-is: test/Server/Main.hs
386+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36, network-transport, semigroups
387+ HS-Source-Dirs: ., ./src/bin
388+ GHC-Options: -Wall -threaded
375389
376390Executable Example-SimpleClient
377391 Default-Language: Haskell2010
378392 Default-Extensions: OverloadedStrings
379− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, ghc, ghc-paths, project-m36, random, MonadRandom
393+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, ghc, ghc-paths, project-m36, random, MonadRandom
380394 Main-Is: examples/SimpleClient.hs
381395 GHC-Options: -Wall -threaded
382396
383397Executable Example-OutOfTheTarpit
384398 Default-Language: Haskell2010
385399 Default-Extensions: OverloadedStrings
386− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36, winery
400+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36
387401 Main-Is: examples/out_of_the_tarpit.hs
388402 GHC-Options: -Wall -threaded
389403
390404Executable Example-Blog
391405 Default-Language: Haskell2010
392406 Default-Extensions: OverloadedStrings
393− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36, scotty, blaze-html, http-types, winery
407+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36, scotty, blaze-html, http-types
394408 Main-Is: examples/blog.hs
395409 GHC-Options: -Wall -threaded
396410
411+
397412Executable Example-Hair
398413 Default-Language: Haskell2010
399414 Default-Extensions: OverloadedStrings
400− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36, winery
415+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36
401416 Main-Is: examples/hair.hs
402417 GHC-Options: -Wall -threaded
403418
404−Executable Example-Plantfarm
405− Default-Language: Haskell2010
406− Default-Extensions: OverloadedStrings
407− Build-Depends: aeson, barbies, base, binary, containers, deepseq, hashable, project-m36, random, scotty, text, winery
408− Main-Is: examples/Plantfarm.hs
409− GHC-Options: -Wall -threaded
410−
411419Executable Example-CustomTupleable
412420 Default-Language: Haskell2010
413421 Default-Extensions: OverloadedStrings
414− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36, winery
422+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36
415423 Main-Is: examples/CustomTupleable.hs
416424 GHC-Options: -Wall -threaded
417425
@@ -421,19 +429,23 @@ Executable Example-DerivingCustomTupleable
421429 else
422430 Buildable: False
423431 Default-Language: Haskell2010
424− Build-Depends: base, text, deepseq, project-m36, winery
432+ Build-Depends: base, text, deepseq, binary, project-m36
425433 Main-Is: examples/DerivingCustomTupleable.hs
426434 GHC-Options: -Wall -threaded
427435
428436Test-Suite test-scripts
429− import: commontest
437+ Default-Language: Haskell2010
438+ Default-Extensions: OverloadedStrings
430439 type: exitcode-stdio-1.0
431− main-is: scripts.hs
440+ main-is: test/scripts.hs
441+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
432442 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Printer
443+ GHC-Options: -Wall -threaded
444+ Hs-Source-Dirs: ., ./src/bin
433445
434446Executable project-m36-websocket-server
435447 Default-Language: Haskell2010
436− Build-Depends: base, aeson, path-pieces, either, conduit, http-api-data, template-haskell, websockets, aeson, optparse-applicative, project-m36, containers, bytestring, text, vector, uuid, megaparsec, haskeline, mtl, directory, base64-bytestring, random, MonadRandom, time, semigroups, attoparsec, parser-combinators, prettyprinter, network, modern-uri, http-conduit, base16-bytestring, http-types, cryptohash-sha256, wai, wai-websockets, warp, warp-tls
448+ Build-Depends: base, aeson, path-pieces, either, conduit, http-api-data, template-haskell, websockets, aeson, optparse-applicative, project-m36, containers, bytestring, text, vector, uuid, megaparsec, haskeline, mtl, directory, base64-bytestring, random, MonadRandom, time, network-transport-tcp, semigroups, attoparsec, parser-combinators, prettyprinter
437449 Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
438450 Other-Modules: ProjectM36.Client.Json, ProjectM36.Server.RemoteCallTypes.Json, ProjectM36.Server.WebSocket, TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator, TutorialD.Printer
439451 GHC-Options: -Wall -threaded
@@ -441,48 +453,78 @@ Executable project-m36-websocket-server
441453 Default-Extensions: OverloadedStrings
442454
443455Test-Suite test-websocket-server
444− import: commontest
456+ Default-Language: Haskell2010
445457 type: exitcode-stdio-1.0
446− main-is: Server/WebSocket.hs
458+ main-is: test/Server/WebSocket.hs
459+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, network-transport-tcp, semigroups, parser-combinators, prettyprinter
447460 Other-Modules: TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.TransactionGraphOperator, ProjectM36.Client.Json, ProjectM36.Server.RemoteCallTypes.Json, ProjectM36.Server.WebSocket, TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator, TutorialD.Printer
461+ Default-Extensions: OverloadedStrings
462+ GHC-Options: -Wall -threaded
463+ Hs-Source-Dirs: ./src/bin, .
448464
449465Test-Suite test-isomorphic-schemas
450− import: commontest
466+ Default-Language: Haskell2010
451467 type: exitcode-stdio-1.0
452− main-is: IsomorphicSchema.hs
468+ main-is: test/IsomorphicSchema.hs
469+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, prettyprinter
470+ Default-Extensions: OverloadedStrings
471+ GHC-Options: -Wall -threaded
472+ Hs-Source-Dirs: ./src/bin, .
473+ Other-Modules: TutorialD.Printer
453474
454475Test-Suite test-atomable
455− import: commontest
476+ Default-Language: Haskell2010
456477 type: exitcode-stdio-1.0
457− main-is: Relation/Atomable.hs
478+ main-is: test/Relation/Atomable.hs
479+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
458480 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Printer
481+ Default-Extensions: OverloadedStrings
482+ GHC-Options: -Wall -threaded
483+ Hs-Source-Dirs: ./src/bin, ., test/
459484
460485Test-Suite test-multiprocess-access
461− import: commontest
486+ Default-Language: Haskell2010
462487 type: exitcode-stdio-1.0
463− main-is: MultiProcessDatabaseAccess.hs
488+ main-is: test/MultiProcessDatabaseAccess.hs
489+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom
490+ Default-Extensions: OverloadedStrings
491+ GHC-Options: -Wall -threaded
492+ Hs-Source-Dirs: ./src/bin, ., test/
464493
465494Test-Suite test-transactiongraph-automerge
466− import: commontest
495+ Default-Language: Haskell2010
467496 type: exitcode-stdio-1.0
468− main-is: TransactionGraph/Automerge.hs
497+ main-is: test/TransactionGraph/Automerge.hs
498+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
469499 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Printer
500+ Default-Extensions: OverloadedStrings
501+ GHC-Options: -Wall -threaded
502+ Hs-Source-Dirs: ./src/bin, ., test/
470503
471504Test-Suite test-tupleable
472− import: commontest
505+ Default-Language: Haskell2010
473506 type: exitcode-stdio-1.0
474− main-is: Relation/Tupleable.hs
507+ main-is: test/Relation/Tupleable.hs
508+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, prettyprinter
509+ Default-Extensions: OverloadedStrings
510+ GHC-Options: -Wall -threaded
511+ Hs-Source-Dirs: ./src/bin, ., test/
475512
476513Test-Suite test-client-simple
477− import: commontest
478− Main-Is: Client/Simple.hs
514+ Default-Language: Haskell2010
515+ Main-Is: test/Client/Simple.hs
479516 type: exitcode-stdio-1.0
517+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, prettyprinter
518+ Default-Extensions: OverloadedStrings
519+ GHC-Options: -Wall -threaded
520+ Hs-Source-Dirs: ./src/bin, ., test/
521+ Other-Modules: TutorialD.Printer
480522
481523-- test for file handle leaks
482524Executable handles
483525 Default-Language: Haskell2010
484526 Default-Extensions: OverloadedStrings
485− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t, ghc, ghc-paths, transformers, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter, modern-uri, http-types, http-conduit, base16-bytestring, cryptohash-sha256
527+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t, ghc, ghc-paths, transformers, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
486528 main-is: benchmark/Handles.hs
487529 Other-Modules: TutorialD.Interpreter,
488530 TutorialD.Interpreter.Base,
@@ -508,7 +550,11 @@ Executable handles
508550 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
509551
510552Test-Suite test-dataframe
511− import: commontest
553+ Default-Language: Haskell2010
554+ Main-Is: test/DataFrame.hs
512555 type: exitcode-stdio-1.0
513− Main-Is: DataFrame.hs
514556 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Printer
557+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, parser-combinators, prettyprinter
558+ Default-Extensions: OverloadedStrings
559+ GHC-Options: -Wall -threaded
560+ Hs-Source-Dirs: ./src/bin, ., test/