packages feed

project-m36-0.9.7: project-m36.cabal

Cabal-Version: 2.2
Name: project-m36
Version: 0.9.7
License: MIT
--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
Build-Type: Simple
Homepage: https://github.com/agentm/project-m36
Bug-Reports: https://github.com/agentm/project-m36/issues
Author: AgentM
Stability: experimental
Category: Relational Algebra
Maintainer: agentm@themactionfaction.com
Synopsis: Relational Algebra Engine
Description: A relational algebra engine which can be used to persist and query Haskell data types.
Extra-Source-Files: Changelog.markdown README.markdown

Source-Repository head
    Type: git
    location: https://github.com/agentm/project-m36

Flag profiler
  Description: Enable Haskell-specific profiling support
  Default: False
  Manual: True

--flag to allow stack to use its older, pinned packages
Flag stack
    Description: build with stack and stackage
    Manual: True
    Default: False

Flag haskell-scripting
     Description: enables Haskell scripting which links against GHC as a library
     Manual: True
     Default: True

Library
    Build-Depends: base>=4.8 && < 4.17, 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, 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 >= 1.4, curryer-rpc>=0.2.2, network, async, vector-instances, recursion-schemes, streamly >= 0.7.2, convertible, fast-builder, scientific, time-compat >= 1.9.6.1
    if flag(haskell-scripting)
        Build-Depends: ghc >= 8.2 && < 9.3
        CPP-Options: -DPM36_HASKELL_SCRIPTING
    if impl(ghc>= 8) && flag(haskell-scripting)
      build-depends:
        ghc-boot, ghci
    if impl(ghc>= 8.6)
        Build-Depends: deferred-folds
    Exposed-Modules: ProjectM36.Error,
                     ProjectM36.Transaction,
                     ProjectM36.TransactionGraph,
                     ProjectM36.TransactionGraph.Show,
                     ProjectM36.TransactionGraph.Persist,
                     ProjectM36.TransactionGraph.Merge,
                     ProjectM36.TransGraphRelationalExpression,
                     ProjectM36.Base,
                     ProjectM36.Serialise.Base,
                     ProjectM36.Serialise.Error,
                     ProjectM36.DataFrame,
                     ProjectM36.Attribute,
                     ProjectM36.AttributeNames,
                     ProjectM36.Tuple,
                     ProjectM36.TupleSet,
                     ProjectM36.Function,
                     ProjectM36.Atom,
                     ProjectM36.AtomFunction,
                     ProjectM36.AtomFunctionError,
                     ProjectM36.ScriptSession,
                     ProjectM36.Shortcuts,
                     ProjectM36.DatabaseContextFunction,
                     ProjectM36.DatabaseContextFunctionError,
                     ProjectM36.DatabaseContextFunctionUtils,
                     ProjectM36.Key,
                     ProjectM36.FunctionalDependency,
                     ProjectM36.DatabaseContext,
                     ProjectM36.DateExamples,
                     ProjectM36.DisconnectedTransaction,
                     ProjectM36.AtomFunctionBody,
                     ProjectM36.RelationalExpression,
                     ProjectM36.Relation.Show.HTML,
                     ProjectM36.StaticOptimizer,
                     ProjectM36.Relation.Show.Term,
                     ProjectM36.WCWidth,
                     ProjectM36.Relation.Show.CSV,
                     ProjectM36.Relation.Show.Gnuplot,
                     ProjectM36.Relation.Parse.CSV,
                     ProjectM36.IsomorphicSchema,
                     ProjectM36.InclusionDependency,
                     ProjectM36.MerkleHash,
                     ProjectM36.Client,
                     ProjectM36.Client.Simple,
                     ProjectM36.Persist,
                     ProjectM36.AtomType,
                     ProjectM36.AttributeExpr,
                     ProjectM36.AtomFunctions.Basic,
                     ProjectM36.AtomFunctions.Primitive,
                     ProjectM36.Atomable,
                     ProjectM36.Tupleable,
                     ProjectM36.Tupleable.Deriving,
                     ProjectM36.DataConstructorDef,
                     ProjectM36.DataTypes.Basic,
                     ProjectM36.DataTypes.Sorting,
                     ProjectM36.DataTypes.Day,
                     ProjectM36.DataTypes.DateTime,
                     ProjectM36.DataTypes.Either,
                     ProjectM36.DataTypes.Maybe,
                     ProjectM36.DataTypes.List,
                     ProjectM36.DataTypes.NonEmptyList,
                     ProjectM36.DataTypes.Primitive,
                     ProjectM36.DataTypes.Interval,
                     ProjectM36.DataTypes.ByteString,
                     ProjectM36.MiscUtils,
                     ProjectM36.Notifications,
                     ProjectM36.Relation,
                     ProjectM36.Server,
                     ProjectM36.Server.Config,
                     ProjectM36.Server.EntryPoints,
                     ProjectM36.Server.ParseArgs,
                     ProjectM36.Server.RemoteCallTypes,
                     ProjectM36.Serialise.AtomFunctionError,
                     ProjectM36.Serialise.DataFrame,
                     ProjectM36.Serialise.DatabaseContextFunctionError,
                     ProjectM36.Serialise.IsomorphicSchema,
                     ProjectM36.Session,
                     ProjectM36.Sessions,
                     ProjectM36.Transaction.Persist,
                     ProjectM36.TypeConstructor,
                     ProjectM36.TypeConstructorDef,
                     ProjectM36.FileLock,
                     ProjectM36.FSType,
                     ProjectM36.Arbitrary,
                     ProjectM36.GraphRefRelationalExpr,
                     ProjectM36.NormalizeExpr,
                     ProjectM36.TransactionInfo,
                     ProjectM36.WithNameExpr, 
                     ProjectM36.Trace,
                     ProjectM36.HashSecurely,
                     ProjectM36.DDLType,
                     ProjectM36.RegisteredQuery
    GHC-Options: -Wall -rdynamic
    if os(windows)
      Build-Depends: Win32 >= 2.12
      Other-Modules: ProjectM36.Win32Handle
    else
      --219-  too many exported symbols under Windows and GHC 8.4
      GHC-Options: -rdynamic -fexternal-interpreter -eventlog
      C-sources: cbits/DirectoryFsync.c, cbits/darwin_statfs.c
      Build-Depends: unix
    CC-Options: -fPIC
    Hs-Source-Dirs: ./src/lib
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings, CPP, LambdaCase
    if !flag(stack)
      Build-Depends: deferred-folds 

Executable tutd
    if flag(haskell-scripting)
        Build-Depends: ghc >= 8.2 && < 9.3
    Build-Depends: base >=4.8,
                   ghc-paths,
                   project-m36,
                   containers,
                   unordered-containers,
                   hashable,
                   transformers,
                   semigroups,
                   mtl,
                   uuid,
                   deepseq-generics,
                   MonadRandom, MonadRandom,
                   vector,
                   text,
                   time,
                   bytestring,
                   stm,
                   deepseq,
                   data-interval,
                   parallel,
                   cassava,
                   gnuplot,
                   directory,
                   filepath,
                   temporary,
                   megaparsec >= 5.2.0 && < 10,
                   haskeline,
                   random, MonadRandom,
                   base64-bytestring,
                   optparse-applicative,
                   attoparsec,
                   stm-containers >= 1.0.0,
                   list-t,
                   parser-combinators,
                   curryer-rpc,
                   prettyprinter,
                   cryptohash-sha256,
                   --due to decode signature change
                   base16-bytestring >= 1.0.0.0,
                   http-conduit,
                   modern-uri,
                   http-types
    Other-Modules: TutorialD.Interpreter,
                   TutorialD.Interpreter.Base,
                   TutorialD.Interpreter.DatabaseContextExpr,
                   TutorialD.Interpreter.RODatabaseContextOperator,
                   TutorialD.Interpreter.TransactionGraphOperator,
                   TutorialD.Interpreter.Import.BasicExamples,
                   TutorialD.Interpreter.InformationOperator,
                   TutorialD.Interpreter.Export.Base,
                   TutorialD.Interpreter.Export.CSV,
                   TutorialD.Interpreter.DatabaseContextIOOperator,
                   TutorialD.Interpreter.Import.Base,
                   TutorialD.Interpreter.Import.CSV,
                   TutorialD.Interpreter.Import.TutorialD,
                   TutorialD.Interpreter.RelationalExpr,
                   TutorialD.Interpreter.Types,
                   TutorialD.Interpreter.SchemaOperator,
                   TutorialD.Interpreter.TransGraphRelationalOperator,
                   TutorialD.Printer
    main-is: TutorialD/tutd.hs
    CC-Options: -fPIC
    if os(windows)
      GHC-Options: -Wall -threaded -eventlog -rtsopts
    else
      GHC-Options: -Wall -threaded -rdynamic -eventlog -rtsopts
    if flag(profiler)
      GHC-Prof-Options: -fprof-auto -rtsopts -threaded
    Hs-Source-Dirs: ./src/bin
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings

Executable project-m36-server
    if flag(haskell-scripting)
        Build-Depends: ghc >= 8.2 && < 9.3
    Build-Depends: base,
                   ghc-paths,
                   transformers,
                   project-m36,
                   temporary,
                   data-interval,
                   deepseq,
                   uuid,
                   stm,
                   filepath,
                   directory,
                   parallel,
                   bytestring,
                   optparse-applicative,
                   time,
                   text,
                   deepseq-generics,
                   mtl,
                   containers,
                   hashable,
                   unordered-containers,
                   vector,
                   http-api-data,
                   stm-containers,
                   list-t,
                   base64-bytestring,
                   scientific
    Main-Is: ./src/bin/ProjectM36/Server/project-m36-server.hs
    if os(windows)
      GHC-Options: -Wall -threaded -rtsopts
    else
      GHC-Options: -Wall -threaded -rtsopts -rdynamic
    if flag(profiler)
      GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings

Executable bigrel
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    Other-Modules: TutorialD.Interpreter.Base,
                   TutorialD.Interpreter.DatabaseContextExpr,
                   TutorialD.Interpreter.RelationalExpr,
                   TutorialD.Interpreter.Types
    main-is: benchmark/bigrel.hs
    GHC-Options: -Wall -threaded -rtsopts
    HS-Source-Dirs: ./src/bin
    if flag(profiler)
      GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall -eventlog

Common commontest
    Default-Language: Haskell2010
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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, scientific
    Default-Extensions: OverloadedStrings
    GHC-Options: -Wall -threaded
    Hs-Source-Dirs: test, src/bin

Benchmark basic-benchmark
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, criterion, project-m36, text, vector, transformers, containers, temporary, directory, filepath
    Main-Is: benchmark/Basic.hs
    Type: exitcode-stdio-1.0
    GHC-Options: -Wall -threaded -rtsopts
    HS-Source-Dirs: ./src/bin
    if flag(profiler)
      GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall

--benchmark inserts, updates, deletes for a basic use-case to shake out any space leaks
Benchmark update-exprs
  Default-Language: Haskell2010
  Default-Extensions: OverloadedStrings
  Build-Depends: base, criterion, project-m36, text, winery
  Main-Is: benchmark/Server.hs
  Type: exitcode-stdio-1.0
  GHC-Options: -Wall -threaded -rtsopts
  HS-Source-Dirs: ./src/bin
  if flag(profiler)
    GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall -fexternal-interpreter

Test-Suite test-tutoriald
    import: commontest
    type: exitcode-stdio-1.0
    main-is: TutorialD/InterpreterTest.hs
    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
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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, scientific

Test-Suite test-tutoriald-atomfunctionscript
    import: commontest
    type: exitcode-stdio-1.0
    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
    main-is: TutorialD/Interpreter/AtomFunctionScript.hs

Test-Suite test-tutoriald-databasecontextfunctionscript
    import: commontest
    type: exitcode-stdio-1.0
    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
    main-is: TutorialD/Interpreter/DatabaseContextFunctionScript.hs

Test-Suite test-relation
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Relation/Basic.hs

Test-Suite test-static-optimizer
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Relation/StaticOptimizer.hs

Test-Suite test-transactiongraph-persist
    import: commontest
    type: exitcode-stdio-1.0
    main-is: TransactionGraph/Persist.hs
    Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Printer

Test-Suite test-relation-import-csv
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Relation/Import/CSV.hs

Test-Suite test-tutoriald-import-tutoriald
    import: commontest
    type: exitcode-stdio-1.0
    build-depends: warp, wai
    main-is: TutorialD/Interpreter/Import/ImportTest.hs
    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

Test-Suite test-relation-export-csv
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Relation/Export/CSV.hs

Test-Suite test-transactiongraph-merge
    import: commontest
    type: exitcode-stdio-1.0
    main-is: TransactionGraph/Merge.hs


Test-Suite test-prettyprinter
    import: commontest
    type: exitcode-stdio-1.0
    main-is: TutorialD/PrinterTest.hs
    Other-Modules: TutorialD.Printer, TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types

benchmark bench
    import: commontest
    type: exitcode-stdio-1.0
    main-is: benchmark/Relation.hs

benchmark ondiskclient
    import: commontest
    type: exitcode-stdio-1.0
    main-is: benchmark/OnDiskClient.hs
    GHC-Options: -rtsopts -Wall -threaded -eventlog -finfo-table-map -fdistinct-constructor-tables

Test-Suite test-server
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Server/Main.hs

Executable Example-SimpleClient
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    Main-Is: examples/SimpleClient.hs
    GHC-Options: -Wall -threaded

Executable Example-OutOfTheTarpit
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    Main-Is: examples/out_of_the_tarpit.hs
    GHC-Options: -Wall -threaded

Executable Example-Blog
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    Main-Is: examples/blog.hs
    GHC-Options: -Wall -threaded

Executable Example-Hair
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    Main-Is: examples/hair.hs
    GHC-Options: -Wall -threaded

Executable Example-Plantfarm
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends:  aeson, barbies, base, binary, containers, deepseq, hashable, project-m36, random, scotty, text, winery
    Main-Is: examples/Plantfarm.hs
    GHC-Options: -Wall -threaded

Executable Example-CustomTupleable
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    Main-Is: examples/CustomTupleable.hs
    GHC-Options: -Wall -threaded

Executable Example-DerivingCustomTupleable
    if impl(ghc>=8.6)
      Buildable: True
    else
      Buildable: False
    Default-Language: Haskell2010
    Build-Depends: base, text, deepseq, project-m36, winery
    Main-Is: examples/DerivingCustomTupleable.hs
    GHC-Options: -Wall -threaded

Test-Suite test-scripts
    import: commontest
    type: exitcode-stdio-1.0
    main-is: scripts.hs
    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

Executable project-m36-websocket-server
    Default-Language: Haskell2010
    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, scientific
    Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
    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
    GHC-Options: -Wall -threaded
    Hs-Source-Dirs: ./src/bin
    Default-Extensions: OverloadedStrings

Test-Suite test-websocket-server
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Server/WebSocket.hs
    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

Test-Suite test-isomorphic-schemas
    import: commontest
    type: exitcode-stdio-1.0
    main-is: IsomorphicSchema.hs

Test-Suite test-atomable
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Relation/Atomable.hs
    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

Test-Suite test-multiprocess-access
    import: commontest
    type: exitcode-stdio-1.0
    main-is: MultiProcessDatabaseAccess.hs

Test-Suite test-transactiongraph-automerge
    import: commontest
    type: exitcode-stdio-1.0
    main-is: TransactionGraph/Automerge.hs
    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

Test-Suite test-tupleable
    import: commontest
    type: exitcode-stdio-1.0
    main-is: Relation/Tupleable.hs

Test-Suite test-client-simple
    import: commontest
    Main-Is: Client/Simple.hs
    type: exitcode-stdio-1.0

-- test for file handle leaks
Executable handles
    Default-Language: Haskell2010
    Default-Extensions: OverloadedStrings
    Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, 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
    main-is: benchmark/Handles.hs
    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.TransGraphRelationalOperator,
      TutorialD.Interpreter.TransactionGraphOperator,
      TutorialD.Interpreter.Types,
      TutorialD.Printer
    GHC-Options: -Wall -threaded -rtsopts
    HS-Source-Dirs: ./src/bin
    if flag(profiler)
      GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall

Test-Suite test-dataframe
    import: commontest
    type: exitcode-stdio-1.0
    Main-Is: DataFrame.hs
    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