@@ -1,5 +1,5 @@
11Name: project-m36
2−Version: 0.1
2+Version: 0.2
33License: PublicDomain
44Build-Type: Simple
55Homepage: https://github.com/agentm/project-m36
@@ -34,7 +34,7 @@ Library
3434 ,directory
3535 ,MonadRandom
3636 ,random-shuffle
37− --critical uuid bug in lesser versions https://www.reddit.com/r/haskell/comments/4myot5/psa_make_sure_to_use_uuid_1312/
37+ --critical uuid bug in lesser versions https://www.reddit.com/r/haskell/comments/4myot5/psa_make_sure_to_use_uuid_1312/
3838 ,uuid >= 1.3.12
3939 ,cassava >= 0.4.5.1 && < 0.6
4040 ,text
@@ -61,7 +61,8 @@ Library
6161 ,data-interval
6262 ,extended-reals
6363 ,network-transport
64− ,aeson
64+ -- aeson 1.1 and above includes instances for UUID types
65+ ,aeson >= 1.1
6566 ,path-pieces
6667 ,conduit
6768 ,resourcet
@@ -120,6 +121,7 @@ Library
120121 ProjectM36.AtomFunctions.Basic,
121122 ProjectM36.AtomFunctions.Primitive,
122123 ProjectM36.Atomable,
124+ ProjectM36.Tupleable,
123125 ProjectM36.DataConstructorDef,
124126 ProjectM36.DataTypes.Basic,
125127 ProjectM36.DataTypes.Day,
@@ -189,7 +191,7 @@ Executable tutd
189191 directory,
190192 filepath,
191193 temporary,
192− megaparsec >= 5.2.0 && < 5.3,
194+ megaparsec >= 5.2.0 && < 5.4,
193195 haskeline,
194196 random, MonadRandom,
195197 base64-bytestring,
@@ -216,7 +218,6 @@ Executable tutd
216218 TutorialD.Interpreter.TransGraphRelationalOperator,
217219 TutorialD.Interpreter.SchemaOperator
218220 main-is: TutorialD/tutd.hs
219− CPP-Options: -DPROJECTM36_VERSION="v0.1"
220221 CC-Options: -fPIC
221222 GHC-Options: -Wall
222223 Hs-Source-Dirs: ./src/bin
@@ -262,7 +263,6 @@ Executable project-m36-server
262263 list-t,
263264 base64-bytestring
264265 Main-Is: ./src/bin/ProjectM36/Server/project-m36-server.hs
265− CPP-Options: -DPROJECTM36_VERSION="v0.1"
266266 GHC-Options: -Wall -threaded -rtsopts
267267 if flag(profiler)
268268 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
@@ -279,7 +279,6 @@ Executable bigrel
279279 TutorialD.Interpreter.Types
280280 main-is: benchmark/bigrel.hs
281281 GHC-Options: -Wall -threaded -rtsopts
282− CPP-Options: -DPROJECTM36_VERSION="v0.1"
283282 HS-Source-Dirs: ./src/bin
284283 if flag(profiler)
285284 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
@@ -293,7 +292,6 @@ Test-Suite test-tutoriald
293292 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
294293 GHC-Options: -Wall
295294 Hs-Source-Dirs: ./src/bin, ., test
296− CPP-Options: -DPROJECTM36_VERSION="v0.1"
297295
298296Test-Suite test-tutoriald-atomfunctionscript
299297 Default-Language: Haskell2010
@@ -304,7 +302,6 @@ Test-Suite test-tutoriald-atomfunctionscript
304302 Build-Depends: base, HUnit, project-m36, uuid, containers, megaparsec, text, vector, directory, bytestring, mtl, haskeline, random, MonadRandom, semigroups, time
305303 GHC-Options: -Wall
306304 Hs-Source-Dirs: ./src/bin, ./test, .
307− CPP-Options: -DPROJECTM36_VERSION="v0.1"
308305
309306Test-Suite test-tutoriald-databasecontextfunctionscript
310307 Default-Language: Haskell2010
@@ -315,7 +312,6 @@ Test-Suite test-tutoriald-databasecontextfunctionscript
315312 Build-Depends: base, HUnit, project-m36, uuid, containers, megaparsec, text, vector, directory, bytestring, mtl, haskeline, random, MonadRandom, semigroups, time
316313 GHC-Options: -Wall
317314 Hs-Source-Dirs: ./src/bin, ./test, .
318− CPP-Options: -DPROJECTM36_VERSION="v0.1"
319315
320316Test-Suite test-relation
321317 Default-Language: Haskell2010
@@ -332,7 +328,6 @@ Test-Suite test-static-optimizer
332328 main-is: test/Relation/StaticOptimizer.hs
333329 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
334330 GHC-Options: -Wall
335− CPP-Options: -DPROJECTM36_VERSION="v0.1"
336331
337332Test-Suite test-transactiongraph-persist
338333 Default-Language: Haskell2010
@@ -351,7 +346,6 @@ Test-Suite test-relation-import-csv
351346 main-is: test/Relation/Import/CSV.hs
352347 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
353348 GHC-Options: -Wall
354− CPP-Options: -DPROJECTM36_VERSION="v0.1"
355349
356350Test-Suite test-tutoriald-import-tutoriald
357351 Default-Language: Haskell2010
@@ -410,7 +404,14 @@ Executable Example-OutOfTheTarpit
410404 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
411405 Main-Is: examples/out_of_the_tarpit.hs
412406 GHC-Options: -Wall
413− CPP-Options: -DPROJECTM36_VERSION="v0.1"
407+
408+Executable Example-Blog
409+ Default-Language: Haskell2010
410+ Default-Extensions: OverloadedStrings
411+ 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
412+ Main-Is: examples/blog.hs
413+ GHC-Options: -Wall
414+
414415
415416Executable Example-Hair
416417 Default-Language: Haskell2010
@@ -418,7 +419,6 @@ Executable Example-Hair
418419 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
419420 Main-Is: examples/hair.hs
420421 GHC-Options: -Wall
421− CPP-Options: -DPROJECTM36_VERSION="v0.1"
422422
423423Test-Suite test-scripts
424424 Default-Language: Haskell2010
@@ -432,11 +432,10 @@ Test-Suite test-scripts
432432
433433Executable project-m36-websocket-server
434434 Default-Language: Haskell2010
435− Build-Depends: base, aeson, path-pieces, either, conduit, http-api-data, template-haskell, websockets, aeson, uuid-aeson, optparse-applicative, project-m36, containers, bytestring, text, vector, uuid, megaparsec, haskeline, mtl, directory, base64-bytestring, random, MonadRandom, time, network-transport-tcp, semigroups
435+ 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
436436 Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
437437 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
438438 GHC-Options: -Wall
439− CPP-Options: -DPROJECTM36_VERSION="v0.1"
440439 Hs-Source-Dirs: ./src/bin
441440 Default-Extensions: OverloadedStrings
442441
@@ -444,53 +443,57 @@ Test-Suite test-websocket-server
444443 Default-Language: Haskell2010
445444 type: exitcode-stdio-1.0
446445 main-is: test/Server/WebSocket.hs
447− 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, uuid-aeson, project-m36, random, MonadRandom, network-transport-tcp, semigroups
446+ 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
448447 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
449448 Default-Extensions: OverloadedStrings
450449 GHC-Options: -Wall
451450 Hs-Source-Dirs: ./src/bin, .
452− CPP-Options: -DPROJECTM36_VERSION="v0.1"
453451
454452Test-Suite test-isomorphic-schemas
455453 Default-Language: Haskell2010
456454 type: exitcode-stdio-1.0
457455 main-is: test/IsomorphicSchema.hs
458− 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, uuid-aeson, project-m36
456+ 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
459457 Default-Extensions: OverloadedStrings
460458 GHC-Options: -Wall
461459 Hs-Source-Dirs: ./src/bin, .
462− CPP-Options: -DPROJECTM36_VERSION="v0.1"
463460
464461Test-Suite test-atomable
465462 Default-Language: Haskell2010
466463 type: exitcode-stdio-1.0
467464 main-is: test/Relation/Atomable.hs
468− 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, uuid-aeson, project-m36, random, MonadRandom, semigroups
465+ 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
469466 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
470467 Default-Extensions: OverloadedStrings
471468 GHC-Options: -Wall
472469 Hs-Source-Dirs: ./src/bin, ., test/
473− CPP-Options: -DPROJECTM36_VERSION="v0.1"
474470
475471Test-Suite test-multiprocess-access
476472 Default-Language: Haskell2010
477473 type: exitcode-stdio-1.0
478474 main-is: test/MultiProcessDatabaseAccess.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, uuid-aeson, project-m36, random, MonadRandom
475+ 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
480476 Default-Extensions: OverloadedStrings
481477 GHC-Options: -Wall
482478 Hs-Source-Dirs: ./src/bin, ., test/
483− CPP-Options: -DPROJECTM36_VERSION="v0.1"
484479
485480Test-Suite test-transactiongraph-automerge
486481 Default-Language: Haskell2010
487482 type: exitcode-stdio-1.0
488483 main-is: test/TransactionGraph/Automerge.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, uuid-aeson, project-m36, random, MonadRandom, semigroups
484+ 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
485+ Default-Extensions: OverloadedStrings
486+ GHC-Options: -Wall
487+ Hs-Source-Dirs: ./src/bin, ., test/
488+
489+Test-Suite test-tupleable
490+ Default-Language: Haskell2010
491+ type: exitcode-stdio-1.0
492+ main-is: test/Relation/Tupleable.hs
493+ 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
490494 Default-Extensions: OverloadedStrings
491495 GHC-Options: -Wall
492496 Hs-Source-Dirs: ./src/bin, ., test/
493− CPP-Options: -DPROJECTM36_VERSION="v0.1"
494497
495498Test-Suite test-client-simple
496499 Default-Language: Haskell2010
@@ -500,4 +503,4 @@ Test-Suite test-client-simple
500503 Default-Extensions: OverloadedStrings
501504 GHC-Options: -Wall
502505 Hs-Source-Dirs: ./src/bin, ., test/
503− CPP-Options: -DPROJECTM36_VERSION="v0.1"
506+