linear-smc-2.2.3: 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.3
-- 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 and design 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. This implementation provides additionally: a much improved implementation as well as an interface specifically tailored towards tensor calculus and compact-closed categories in general.
-- 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