Name:                 clash-lib
Version:              0.99.2
Synopsis:             CAES Language for Synchronous Hardware - As a Library
Description:
  CλaSH (pronounced ‘clash’) is a functional hardware description language that
  borrows both its syntax and semantics from the functional programming language
  Haskell. The CλaSH compiler transforms these high-level descriptions to
  low-level synthesizable VHDL, Verilog, or SystemVerilog.
  .
  Features of CλaSH:
  .
  * Strongly typed, but with a very high degree of type inference, enabling both
    safe and fast prototyping using concise descriptions.
  .
  * Interactive REPL: load your designs in an interpreter and easily test all
    your component without needing to setup a test bench.
  .
  * Higher-order functions, with type inference, result in designs that are
    fully parametric by default.
  .
  * Synchronous sequential circuit design based on streams of values, called
    @Signal@s, lead to natural descriptions of feedback loops.
  .
  * Support for multiple clock domains, with type safe clock domain crossing.
  .
  .
  This package provides:
  .
  * The CoreHW internal language: SystemF + Letrec + Case-decomposition
  .
  * The normalisation process that brings CoreHW in a normal form that can be
  converted to a netlist
  .
  * Blackbox/Primitive Handling
  .
  .
  Front-ends (for: parsing, typecheck, etc.) are provided by separate packages:
  .
  * <http://hackage.haskell.org/package/clash-ghc GHC/Haskell Frontend>
  .
  * <https://github.com/christiaanb/Idris-dev Idris Frontend>
  .
  .
  Prelude library: <http://hackage.haskell.org/package/clash-prelude>
Homepage:             http://www.clash-lang.org/
bug-reports:          http://github.com/clash-lang/clash-compiler/issues
License:              BSD2
License-file:         LICENSE
Author:               Christiaan Baaij
Maintainer:           Christiaan Baaij <christiaan.baaij@gmail.com>
Copyright:            Copyright © 2012-2016, University of Twente,
                                  2016-2017, Myrtle Software Ltd,
                                  2017     , QBayLogic, Google Inc.
Category:             Hardware
Build-type:           Simple

Extra-source-files:
  README.md,
  CHANGELOG.md

Data-files:
  prims/common/*.json,
  prims/commonverilog/*.json,
  prims/verilog/*.json,
  prims/systemverilog/*.json,
  prims/vhdl/*.json

Cabal-version:        >=1.10

source-repository head
  type: git
  location: https://github.com/clash-lang/clash-compiler.git

Library
  HS-Source-Dirs:     src

  default-language:   Haskell2010
  ghc-options:        -Wall
  CPP-Options:        -DCABAL

  other-extensions:   CPP
                      DeriveAnyClass
                      DeriveGeneric
                      DeriveFoldable
                      DeriveFunctor
                      FlexibleContexts
                      FlexibleInstances
                      GeneralizedNewtypeDeriving
                      LambdaCase
                      MultiParamTypeClasses
                      OverloadedStrings
                      Rank2Types
                      RecordWildCards
                      ScopedTypeVariables
                      TemplateHaskell
                      TupleSections
                      ViewPatterns

  Build-depends:      aeson                   >= 0.6.2.0  && < 1.5,
                      ansi-wl-pprint          >= 0.6.8.2  && < 1.0,
                      attoparsec              >= 0.10.4.0 && < 0.14,
                      base                    >= 4.8      && < 5,
                      bytestring              >= 0.10.0.2 && < 0.11,
                      clash-prelude           >= 0.11.1   && < 1.0,
                      concurrent-supply       >= 0.1.7    && < 0.2,
                      containers              >= 0.5.0.0  && < 0.6,
                      data-binary-ieee754     >= 0.4.4    && < 0.6,
                      deepseq                 >= 1.3.0.2  && < 1.5,
                      directory               >= 1.2.0.1  && < 1.4,
                      errors                  >= 1.4.2    && < 2.4,
                      fgl                     >= 5.4.2.4  && < 5.7,
                      filepath                >= 1.3.0.1  && < 1.5,
                      ghc                     >= 8.0.2    && < 8.6,
                      hashable                >= 1.2.1.0  && < 1.3,
                      integer-gmp             >= 1.0      && < 1.1,
                      lens                    >= 3.9.2    && < 4.18,
                      mtl                     >= 2.1.2    && < 2.3,
                      parsers                 >= 0.12.8   && < 1.0,
                      prettyprinter           >= 1.2.0.1  && < 2.0,
                      process                 >= 1.1.0.2  && < 1.7,
                      reducers                >= 3.12.2   && < 4.0,
                      template-haskell        >= 2.8.0.0  && < 2.14,
                      text                    >= 0.11.3.1 && < 1.3,
                      time                    >= 1.4.0.1  && < 1.9,
                      transformers            >= 0.3.0.0  && < 0.6,
                      trifecta                >= 1.7.1.1  && < 2.0,
                      unbound-generics        >= 0.1      && < 0.4,
                      unordered-containers    >= 0.2.3.3  && < 0.3

  Exposed-modules:    Clash.Backend
                      Clash.Backend.SystemVerilog
                      Clash.Backend.Verilog
                      Clash.Backend.VHDL

                      Clash.Core.DataCon
                      Clash.Core.Evaluator
                      Clash.Core.FreeVars
                      Clash.Core.Literal
                      Clash.Core.Name
                      Clash.Core.Pretty
                      Clash.Core.Subst
                      Clash.Core.Term
                      Clash.Core.TyCon
                      Clash.Core.Type
                      Clash.Core.TysPrim
                      Clash.Core.Util
                      Clash.Core.Var

                      Clash.Driver
                      Clash.Driver.Types

                      Clash.Netlist
                      Clash.Netlist.BlackBox
                      Clash.Netlist.BlackBox.Parser
                      Clash.Netlist.BlackBox.Types
                      Clash.Netlist.BlackBox.Util
                      Clash.Netlist.Id
                      Clash.Netlist.Types
                      Clash.Netlist.Util

                      Clash.Normalize
                      Clash.Normalize.DEC
                      Clash.Normalize.PrimitiveReductions
                      Clash.Normalize.Strategy
                      Clash.Normalize.Transformations
                      Clash.Normalize.Types
                      Clash.Normalize.Util

                      Clash.Primitives.Types
                      Clash.Primitives.Util

                      Clash.Rewrite.Combinators
                      Clash.Rewrite.Types
                      Clash.Rewrite.Util

                      Clash.Util

  Other-Modules:      Clash.Annotations.TopEntity.Extra
                      Data.Aeson.Extra
                      Data.Semigroup.Monad.Extra
                      Data.Text.Prettyprint.Doc.Extra
                      GHC.BasicTypes.Extra
                      GHC.SrcLoc.Extra
                      Paths_clash_lib
                      Unbound.Generics.LocallyNameless.Extra