@@ -1,7 +1,8 @@
11Cabal-Version: 2.2
22Name: project-m36
3−Version: 0.9.0
4−License: Unlicense
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
56Build-Type: Simple
67Homepage: https://github.com/agentm/project-m36
78Bug-Reports: https://github.com/agentm/project-m36/issues
@@ -34,7 +35,7 @@ Flag haskell-scripting
3435 Default: True
3536
3637Library
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, filepath, zlib, directory, 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, list-t, stm-containers >= 0.2.15, foldl, optparse-applicative, Glob, cryptohash-sha256, text-manipulate >= 0.2.0.1 && < 0.3, winery, curryer, network, async, vector-instances
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
3839 if flag(haskell-scripting)
3940 Build-Depends: ghc >= 8.2 && < 8.11
4041 CPP-Options: -DPM36_HASKELL_SCRIPTING
@@ -62,6 +63,7 @@ Library
6263 ProjectM36.AtomFunction,
6364 ProjectM36.AtomFunctionError,
6465 ProjectM36.ScriptSession,
66+ ProjectM36.Shortcuts,
6567 ProjectM36.DatabaseContextFunction,
6668 ProjectM36.DatabaseContextFunctionError,
6769 ProjectM36.DatabaseContextFunctionUtils,
@@ -134,14 +136,14 @@ Library
134136 Other-Modules: ProjectM36.Win32Handle
135137 else
136138 --219- too many exported symbols under Windows and GHC 8.4
137− GHC-Options: -rdynamic
139+ GHC-Options: -rdynamic -fexternal-interpreter
138140 C-sources: cbits/DirectoryFsync.c, cbits/darwin_statfs.c
139141 Build-Depends: unix
140142 CC-Options: -fPIC
141143 Hs-Source-Dirs: ./src/lib
142144 Default-Language: Haskell2010
143145 Default-Extensions: OverloadedStrings, CPP
144− if !flag(stack)
146+ if !flag(stack)
145147 Build-Depends: deferred-folds
146148
147149Executable tutd
@@ -173,7 +175,7 @@ Executable tutd
173175 directory,
174176 filepath,
175177 temporary,
176− megaparsec >= 5.2.0 && < 9,
178+ megaparsec >= 5.2.0 && < 10,
177179 haskeline,
178180 random, MonadRandom,
179181 base64-bytestring,
@@ -182,8 +184,14 @@ Executable tutd
182184 stm-containers >= 1.0.0,
183185 list-t,
184186 parser-combinators,
185− curryer,
186− prettyprinter
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
187195 Other-Modules: TutorialD.Interpreter,
188196 TutorialD.Interpreter.Base,
189197 TutorialD.Interpreter.DatabaseContextExpr,
@@ -229,7 +237,6 @@ Executable project-m36-server
229237 optparse-applicative,
230238 hashable-time,
231239 time,
232− vector-binary-instances,
233240 text,
234241 deepseq-generics,
235242 mtl,
@@ -251,7 +258,7 @@ Executable project-m36-server
251258Executable bigrel
252259 Default-Language: Haskell2010
253260 Default-Extensions: OverloadedStrings
254− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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
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
255262 Other-Modules: TutorialD.Interpreter.Base,
256263 TutorialD.Interpreter.DatabaseContextExpr,
257264 TutorialD.Interpreter.RelationalExpr,
@@ -263,11 +270,11 @@ Executable bigrel
263270 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
264271
265272Common commontest
266− Default-Language: Haskell2010
267− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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, prettyprinter, base64-bytestring
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
268275 Default-Extensions: OverloadedStrings
269276 GHC-Options: -Wall -threaded
270− Hs-Source-Dirs: ./src/bin, ., test/
277+ Hs-Source-Dirs: test, src/bin
271278
272279Benchmark basic-benchmark
273280 Default-Language: Haskell2010
@@ -280,67 +287,79 @@ Benchmark basic-benchmark
280287 if flag(profiler)
281288 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
282289
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+
283302Test-Suite test-tutoriald
284303 import: commontest
285304 type: exitcode-stdio-1.0
286− main-is: test/TutorialD/Interpreter.hs
305+ main-is: TutorialD/InterpreterTest.hs
287306 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
288− 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
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
289308
290309Test-Suite test-tutoriald-atomfunctionscript
291310 import: commontest
292311 type: exitcode-stdio-1.0
293312 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
294− main-is: test/TutorialD/Interpreter/AtomFunctionScript.hs
313+ main-is: TutorialD/Interpreter/AtomFunctionScript.hs
295314
296315Test-Suite test-tutoriald-databasecontextfunctionscript
297316 import: commontest
298317 type: exitcode-stdio-1.0
299318 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
300− main-is: test/TutorialD/Interpreter/DatabaseContextFunctionScript.hs
319+ main-is: TutorialD/Interpreter/DatabaseContextFunctionScript.hs
301320
302321Test-Suite test-relation
303322 import: commontest
304323 type: exitcode-stdio-1.0
305− main-is: test/Relation/Basic.hs
324+ main-is: Relation/Basic.hs
306325
307326Test-Suite test-static-optimizer
308327 import: commontest
309328 type: exitcode-stdio-1.0
310− main-is: test/Relation/StaticOptimizer.hs
329+ main-is: Relation/StaticOptimizer.hs
311330
312331Test-Suite test-transactiongraph-persist
313332 import: commontest
314333 type: exitcode-stdio-1.0
315− main-is: test/TransactionGraph/Persist.hs
334+ main-is: TransactionGraph/Persist.hs
316335 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Printer
317336
318337Test-Suite test-relation-import-csv
319338 import: commontest
320339 type: exitcode-stdio-1.0
321− main-is: test/Relation/Import/CSV.hs
340+ main-is: Relation/Import/CSV.hs
322341
323342Test-Suite test-tutoriald-import-tutoriald
324343 import: commontest
325344 type: exitcode-stdio-1.0
326− main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
345+ main-is: TutorialD/Interpreter/Import/ImportTest.hs
327346 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
328347
329348Test-Suite test-relation-export-csv
330349 import: commontest
331350 type: exitcode-stdio-1.0
332− main-is: test/Relation/Export/CSV.hs
351+ main-is: Relation/Export/CSV.hs
333352
334353Test-Suite test-transactiongraph-merge
335354 import: commontest
336355 type: exitcode-stdio-1.0
337− main-is: test/TransactionGraph/Merge.hs
356+ main-is: TransactionGraph/Merge.hs
338357
339358
340359Test-Suite test-prettyprinter
341360 import: commontest
342361 type: exitcode-stdio-1.0
343− main-is: test/TutorialD/Printer.hs
362+ main-is: TutorialD/PrinterTest.hs
344363 Other-Modules: TutorialD.Printer, TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types
345364
346365benchmark bench
@@ -351,41 +370,48 @@ benchmark bench
351370Test-Suite test-server
352371 import: commontest
353372 type: exitcode-stdio-1.0
354− main-is: test/Server/Main.hs
373+ main-is: Server/Main.hs
355374
356375
357376Executable Example-SimpleClient
358377 Default-Language: Haskell2010
359378 Default-Extensions: OverloadedStrings
360− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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
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
361380 Main-Is: examples/SimpleClient.hs
362381 GHC-Options: -Wall -threaded
363382
364383Executable Example-OutOfTheTarpit
365384 Default-Language: Haskell2010
366385 Default-Extensions: OverloadedStrings
367− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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
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
368387 Main-Is: examples/out_of_the_tarpit.hs
369388 GHC-Options: -Wall -threaded
370389
371390Executable Example-Blog
372391 Default-Language: Haskell2010
373392 Default-Extensions: OverloadedStrings
374− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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
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
375394 Main-Is: examples/blog.hs
376395 GHC-Options: -Wall -threaded
377396
378397Executable Example-Hair
379398 Default-Language: Haskell2010
380399 Default-Extensions: OverloadedStrings
381− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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, 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
382401 Main-Is: examples/hair.hs
383402 GHC-Options: -Wall -threaded
384403
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+
385411Executable Example-CustomTupleable
386412 Default-Language: Haskell2010
387413 Default-Extensions: OverloadedStrings
388− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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
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
389415 Main-Is: examples/CustomTupleable.hs
390416 GHC-Options: -Wall -threaded
391417
@@ -402,13 +428,12 @@ Executable Example-DerivingCustomTupleable
402428Test-Suite test-scripts
403429 import: commontest
404430 type: exitcode-stdio-1.0
405− main-is: test/scripts.hs
431+ main-is: scripts.hs
406432 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
407433
408434Executable project-m36-websocket-server
409435 Default-Language: Haskell2010
410− 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, network
411− 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
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
412437 Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
413438 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
414439 GHC-Options: -Wall -threaded
@@ -418,46 +443,46 @@ Executable project-m36-websocket-server
418443Test-Suite test-websocket-server
419444 import: commontest
420445 type: exitcode-stdio-1.0
421− main-is: test/Server/WebSocket.hs
446+ main-is: Server/WebSocket.hs
422447 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
423448
424449Test-Suite test-isomorphic-schemas
425450 import: commontest
426451 type: exitcode-stdio-1.0
427− main-is: test/IsomorphicSchema.hs
452+ main-is: IsomorphicSchema.hs
428453
429454Test-Suite test-atomable
430455 import: commontest
431456 type: exitcode-stdio-1.0
432− main-is: test/Relation/Atomable.hs
457+ main-is: Relation/Atomable.hs
433458 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
434459
435460Test-Suite test-multiprocess-access
436461 import: commontest
437462 type: exitcode-stdio-1.0
438− main-is: test/MultiProcessDatabaseAccess.hs
463+ main-is: MultiProcessDatabaseAccess.hs
439464
440465Test-Suite test-transactiongraph-automerge
441466 import: commontest
442467 type: exitcode-stdio-1.0
443− main-is: test/TransactionGraph/Automerge.hs
468+ main-is: TransactionGraph/Automerge.hs
444469 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
445470
446471Test-Suite test-tupleable
447472 import: commontest
448473 type: exitcode-stdio-1.0
449− main-is: test/Relation/Tupleable.hs
474+ main-is: Relation/Tupleable.hs
450475
451476Test-Suite test-client-simple
452477 import: commontest
453− Main-Is: test/Client/Simple.hs
478+ Main-Is: Client/Simple.hs
454479 type: exitcode-stdio-1.0
455480
456481-- test for file handle leaks
457482Executable handles
458483 Default-Language: Haskell2010
459484 Default-Extensions: OverloadedStrings
460− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, 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
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
461486 main-is: benchmark/Handles.hs
462487 Other-Modules: TutorialD.Interpreter,
463488 TutorialD.Interpreter.Base,
@@ -481,9 +506,9 @@ Executable handles
481506 HS-Source-Dirs: ./src/bin
482507 if flag(profiler)
483508 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
484−
509+
485510Test-Suite test-dataframe
486511 import: commontest
487512 type: exitcode-stdio-1.0
488− Main-Is: test/DataFrame.hs
513+ Main-Is: DataFrame.hs
489514 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