packages feed

circuits-0.1.0.0: circuits.cabal

cabal-version: 3.0
name: circuits
version: 0.1.0.0
license: BSD-3-Clause
license-file: LICENSE
copyright: Tony Day (c) 2025
category: control
author: Tony Day
maintainer: tonyday567@gmail.com
homepage: https://github.com/tonyday567/circuits#readme
bug-reports: https://github.com/tonyday567/circuits/issues
synopsis: traced categories and circuits
description:
  circuits is a Haskell library that makes feedback first-class, by providing Circuit, the initial traced category over a base category, hyperfunctions via Hyper, and combinators and interpreters. It is experimental, but could be a promising approach to programming circuits that is intensional, ergonomic and performant.

build-type: Simple
tested-with:
  ghc ==9.10.1
  ghc ==9.12.2
  ghc ==9.14.1

extra-doc-files:
    ChangeLog.md
    readme.md
    LICENSE
    other/symbols.md
    other/axioms.md

source-repository head
  type: git
  location: https://github.com/tonyday567/circuits

common ghc-options-stanza
  ghc-options:
    -Wall
    -Wno-unused-imports
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wpartial-fields
    -Wredundant-constraints

common ghc2024-stanza
  if impl(ghc >=9.10)
    default-language:
      GHC2024
  else
    default-language:
      GHC2021

library
  import: ghc-options-stanza
  import: ghc2024-stanza
  hs-source-dirs: src
  exposed-modules:
    Circuit
    Circuit.Circuit
    Circuit.Classes
    Circuit.Hyper
    Circuit.Monoidal
    Circuit.Traced

  build-depends:
    base >=4.18 && <5,

  if impl(ghc)
    build-depends: profunctors >=5.0 && <6,