packages feed

linear-smc-2.2.2: linear-smc.cabal

cabal-version:      3.0
-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'linear-smc' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               linear-smc

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:     +-+------- breaking API changes
--                  | | +----- non-breaking API additions
--                  | | | +--- code changes with no API change
version:            2.2.2

-- A short (one-line) description of the package.
synopsis:       Build SMC morphisms using linear types

-- A longer description of the package.
description:
  A number of domain specific languages, such as circuits or
  data-science workflows, are best expressed as diagrams of boxes
  connected by wires.
  A faithful abstraction of box-and-wires is Symmetric Monoidal Categories (SMCs)
  This library
  allows one to program SMCs with linear functions instead of SMC
  combinators. This is done without resorting to template haskell or compiler plugins.
  The rationale, design and implementation of this library is provided by the paper  "Evaluating Linear Functions to Symmetric Monoidal Categories", by Jean-Philippe Bernardy and Arnaud Spiwack, appearing at Haskell Symposium 2021.

-- The license under which the package is released.
license:            LGPL-3.0-or-later

-- The file containing the license text.
license-file:       LICENSE

-- The package author(s).
author:             Jean-Philippe Bernardy

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         jeanphilippe.bernardy@gmail.com

-- A copyright notice.
-- copyright:
category:           Math
build-type:         Simple

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:

common warnings
    ghc-options: -Wall

library
    -- Import common warning flags.
    import:           warnings

    -- Modules exported by the library.
    exposed-modules:
      Control.Category.Constrained
      Control.Category.Linear
      Control.Category.Tensors
    other-modules:
      Control.Category.FreeSMC
      Control.Category.FreeCartesian
      Control.Category.Linear.Internal
      Control.Category.StructuredObject
    -- Modules included in this library but not exported.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:

    -- Other library packages from which modules are imported.
    build-depends: constraints >= 0.13.4 && < 666
    build-depends: array >= 0.5 && < 666
    build-depends:    base >=4.16.4.0 && < 666

    -- Directories containing source files.
    hs-source-dirs:   .

    -- Base language which the package is written in.
    default-language: Haskell2010

Test-Suite test-unitary
  build-depends: constraints
  build-depends: array >= 0.5.4 && < 666
  default-language: Haskell2010
  type:       exitcode-stdio-1.0
  main-is:    examples/Unitary.hs
  build-depends: base