Cabal-Version: 3.0
name: linear-smc
version: 1.0.1
category: control
synopsis: Build SMC morphisms using linear types
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.
license: LGPL-3.0-or-later
license-file: LICENSE
author: Jean-Philippe Bernardy
maintainer: jeanphilippe.bernardy@gmail.com
tested-with: GHC==9.0.1
build-type: Simple
library
build-depends: base >=4.13 && < 666
build-depends: constraints
default-language: Haskell2010
exposed-modules:
Control.Category.Constrained
Control.Category.Linear
other-modules:
Control.Category.FreeSMC
Control.Category.FreeCartesian
Test-Suite test-unitary
build-depends: constraints
build-depends: array
default-language: Haskell2010
type: exitcode-stdio-1.0
main-is: examples/Unitary.hs
build-depends: base