packages feed

Cabal revisions of clash-prelude-1.10.0

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-Cabal-version:        2.2-Name:                 clash-prelude-Version:              1.10.0-Synopsis:             Clash: a functional hardware description language - Prelude library-Description:-  Clash is a functional hardware description language that borrows both its-  syntax and semantics from the functional programming language Haskell. The-  Clash compiler transforms these high-level descriptions to low-level-  synthesizable VHDL, Verilog, or SystemVerilog.-  .-  Features of Clash:-  .-  * 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:-  .-  * Prelude library containing datatypes and functions for circuit design-  .-  To use the library:-  .-  * Import "Clash.Prelude"-  .-  * Alternatively, if you want to explicitly route clock and reset ports,-    for more straightforward multi-clock designs, you can import the-    "Clash.Explicit.Prelude" module. Note that you should not import-    "Clash.Prelude" and "Clash.Explicit.Prelude" at the same time as they-    have overlapping definitions.-  .-  A preliminary version of a tutorial can be found at-  <https://docs.clash-lang.org/tutorial>, for a general overview of the library-  you should however check out "Clash.Prelude". Some circuit examples can be-  found in "Clash.Examples".-Homepage:             https://clash-lang.org/-bug-reports:          https://github.com/clash-lang/clash-compiler/issues-License:              BSD-2-Clause-License-file:         LICENSE-Author:               The Clash Authors-Maintainer:           QBayLogic B.V. <devops@qbaylogic.com>-Copyright:            Copyright © 2013-2016, University of Twente,-                                  2016-2017, Myrtle Software Ltd,-                                  2017-2019, QBayLogic B.V., Google Inc.,-                                  2021-2026, QBayLogic B.V.-Category:             Hardware-Build-type:           Simple-tested-with:          GHC == 9.6.7,-                      GHC == 9.8.4,-                      GHC == 9.10.3,-                      GHC == 9.12.4--Extra-source-files:   README.md-                      CHANGELOG.md-                      AUTHORS.md--extra-doc-files:      doc/*.svg--source-repository head-  type: git-  location: https://github.com/clash-lang/clash-compiler.git-  subdir: clash-prelude--flag large-tuples-  description:-    Generate instances for classes such as `NFDataX` and `BitPack` for tuples-    up to and including 62 elements - the GHC imposed maximum. Note that this-    greatly increases compile times for `clash-prelude`.-  default: False-  manual: True--flag super-strict-  description:-    Use `deepseqX` (instead of `seqX`) in register-like constructs. This can-    help to eliminate space leaks when using lazy data structures in-    registers-like constructs. This potentially slows down Clash hardware-    simulation.-  default: False-  manual: True--flag strict-mapSignal-  description:-    Use `seqX` in 'mapSignal#'. This can help to eliminate space leaks in long-    running simulations.-  default: False-  manual: True--flag doctests-  description:-    You can disable testing with doctests using `-f-doctests`.-  default: True-  manual: True--flag unittests-  description:-    You can disable testing with unittests using `-f-unittests`.-  default: True-  manual: True--flag benchmarks-  description:-    You can disable testing with benchmarks using `-f-benchmarks`.-  default: True-  manual: True--flag workaround-ghc-mmap-crash-  description:-    Only use this flag when hit by GHC bug #19421. See clash-compiler PR #2444.-  default: False-  manual: True--common common-options-  default-language:   Haskell2010-  default-extensions: BangPatterns-                      BinaryLiterals-                      DataKinds-                      DefaultSignatures-                      DeriveDataTypeable-                      DeriveFoldable-                      DeriveFunctor-                      DeriveGeneric-                      DeriveLift-                      DeriveTraversable-                      DerivingStrategies-                      InstanceSigs-                      KindSignatures-                      MagicHash-                      NoStarIsType-                      PolyKinds-                      PostfixOperators-                      ScopedTypeVariables-                      StandaloneDeriving-                      TupleSections-                      TypeApplications-                      TypeOperators-                      ViewPatterns--Library-  import:             common-options-  HS-Source-Dirs:     src--  ghc-options:        -Wall -Wcompat -fexpose-all-unfoldings -fno-worker-wrapper-  CPP-Options:        -DCABAL--  if flag(large-tuples)-    CPP-Options: -DLARGE_TUPLES--  if flag(super-strict)-    CPP-Options: -DCLASH_SUPER_STRICT--  if flag(strict-mapSignal)-    CPP-Options: -DCLASH_STRICT_MAPSIGNAL--  Autogen-Modules:    Paths_clash_prelude--  Exposed-modules:    Clash.Annotations.TopEntity-                      Clash.Annotations.Primitive-                      Clash.Annotations.BitRepresentation-                      Clash.Annotations.BitRepresentation.Deriving-                      Clash.Annotations.BitRepresentation.Internal-                      Clash.Annotations.BitRepresentation.Util-                      Clash.Annotations.SynthesisAttributes-                      Clash.Annotations.TH--                      Clash.Class.AutoReg-                      Clash.Class.AutoReg.Internal-                      Clash.Class.BitPack-                      Clash.Class.BitPack.BitIndex-                      Clash.Class.BitPack.BitReduction-                      Clash.Class.BitPack.Internal-                      Clash.Class.BitPack.Internal.TH-                      Clash.Class.Counter-                      Clash.Class.Counter.Internal-                      Clash.Class.Counter.TH-                      Clash.Class.Exp-                      Clash.Class.HasDomain-                      Clash.Class.HasDomain.HasSingleDomain-                      Clash.Class.HasDomain.HasSpecificDomain-                      Clash.Class.HasDomain.CodeGen-                      Clash.Class.HasDomain.Common-                      Clash.Class.Num-                      Clash.Class.NumConvert-                      Clash.Class.NumConvert.Internal.NumConvert-                      Clash.Class.NumConvert.Internal.MaybeNumConvert-                      Clash.Class.NumConvert.Internal.Canonical-                      Clash.Class.Parity-                      Clash.Class.Resize--                      Clash.Clocks--                      Clash.Explicit.BlockRam-                      Clash.Explicit.BlockRam.Blob-                      Clash.Explicit.BlockRam.File-                      Clash.Explicit.BlockRam.Internal-                      Clash.Explicit.BlockRam.Model-                      Clash.Explicit.DDR-                      Clash.Explicit.Mealy-                      Clash.Explicit.Moore-                      Clash.Explicit.RAM-                      Clash.Explicit.ROM-                      Clash.Explicit.ROM.Blob-                      Clash.Explicit.ROM.File-                      Clash.Explicit.Prelude-                      Clash.Explicit.Prelude.Safe-                      Clash.Explicit.Reset-                      Clash.Explicit.SimIO-                      Clash.Explicit.Signal-                      Clash.Explicit.Signal.Delayed-                      Clash.Explicit.Synchronizer-                      Clash.Explicit.Testbench-                      Clash.Explicit.Verification--                      Clash.HaskellPrelude--                      Clash.Hidden--                      Clash.Intel.ClockGen-                      Clash.Intel.DDR--                      Clash.Magic--                      Clash.Num.Erroring-                      Clash.Num.Overflowing-                      Clash.Num.Saturating-                      Clash.Num.Wrapping-                      Clash.Num.Zeroing--                      Clash.NamedTypes--                      Clash.Prelude-                      Clash.Prelude.BlockRam-                      Clash.Prelude.BlockRam.Blob-                      Clash.Prelude.BlockRam.File-                      Clash.Prelude.Mealy-                      Clash.Prelude.Moore-                      Clash.Prelude.RAM-                      Clash.Prelude.ROM-                      Clash.Prelude.ROM.Blob-                      Clash.Prelude.ROM.File-                      Clash.Prelude.Safe-                      Clash.Prelude.Testbench--                      Clash.Promoted.Nat-                      Clash.Promoted.Nat.Literals-                      Clash.Promoted.Nat.TH-                      Clash.Promoted.Nat.Unsafe-                      Clash.Promoted.Symbol--                      Clash.Signal-                      Clash.Signal.Bundle-                      Clash.Signal.BiSignal-                      Clash.Signal.Delayed-                      Clash.Signal.Delayed.Internal-                      Clash.Signal.Delayed.Bundle-                      Clash.Signal.Internal-                      Clash.Signal.Internal.Ambiguous-                      Clash.Signal.Trace--                      Clash.Sized.BitVector-                      Clash.Sized.Fixed-                      Clash.Sized.Index-                      Clash.Sized.RTree-                      Clash.Sized.Signed-                      Clash.Sized.Unsigned-                      Clash.Sized.Vector-                      Clash.Sized.Vector.ToTuple-                      Clash.Sized.Vector.ToTuple.TH--                      Clash.Sized.Internal.BitVector-                      Clash.Sized.Internal.Index-                      Clash.Sized.Internal.Mod-                      Clash.Sized.Internal.Signed-                      Clash.Sized.Internal.Unsigned--                      Clash.Verification-                      Clash.Verification.DSL-                      Clash.Verification.Internal--                      Clash.XException-                      Clash.XException.Internal-                      Clash.XException.MaybeX-                      Clash.XException.TH--                      Clash.Xilinx.ClockGen-                      Clash.Xilinx.DDR--                      Clash.Tutorial-                      Clash.Examples-                      Clash.Examples.Internal--  other-modules:-                      Clash.Class.AutoReg.Instances-                      Clash.Clocks.Internal-                      Clash.CPP-                      Clash.Signal.Bundle.Internal-                      Clash.Sized.Internal-                      Language.Haskell.TH.Compat-                      Paths_clash_prelude--  other-extensions:   CPP-                      ConstraintKinds-                      FlexibleContexts-                      FlexibleInstances-                      GADTs-                      GeneralizedNewtypeDeriving-                      MultiParamTypeClasses-                      PatternSynonyms-                      RankNTypes-                      TemplateHaskell-                      TypeFamilies-                      UndecidableInstances--  Build-depends:      adjunctions               >= 4.0     && < 5.0,-                      array                     >= 0.5.1.0 && < 0.6,-                      arrows                    >= 0.4     && < 0.5,-                      base                      >= 4.18    && < 5,-                      binary                    >= 0.8.5   && < 0.11,-                      bytestring                >= 0.10.8  && < 0.13,-                      constraints               >= 0.9     && < 1.0,-                      containers                >= 0.4.0   && < 0.9,-                      data-binary-ieee754       >= 0.4.4   && < 0.6,-                      data-default              >= 0.7     && < 0.9,-                      deepseq                   >= 1.4.1.0 && < 1.6,-                      distributive              >= 0.1     && < 1.0,-                      extra                     >= 1.6.17  && < 1.9,-                      ghc-bignum                >= 1.0     && < 1.4,-                      ghc-prim                  >= 0.5.1.0 && < 0.14,-                      ghc-typelits-extra        >= 0.5.3   && < 0.6,-                      ghc-typelits-knownnat     >= 0.8.3   && < 0.9,-                      ghc-typelits-natnormalise >= 0.9.5   && < 0.10,-                      hashable                  >= 1.2.1.0  && < 1.6,-                      half                      >= 0.2.2.3 && < 1.0,-                      infinite-list           ^>= 0.1,-                      lens                      >= 4.10    && < 5.4,-                      QuickCheck                >= 2.7     && < 2.16,-                      recursion-schemes         >= 5.1     && < 5.3,-                      reflection                >= 2       && < 2.2,-                      singletons                >= 2.0     && < 3.1,-                      string-interpolate        ^>= 0.3,-                      tagged                    >= 0.8     && < 0.9,-                      template-haskell          >= 2.20.0.0 && < 2.24,-                      th-abstraction            >= 0.3.0 && < 0.8.0,-                      th-lift                   >= 0.7.0    && < 0.9,-                      th-orphans                >= 0.13.1   && < 1.0,-                      text                      >= 0.11.3.1 && < 2.2,-                      time                      >= 1.8     && < 1.15,-                      transformers              >= 0.5.2.0 && < 0.7,-                      type-errors               >= 0.2.0.0 && < 0.3,-                      uniplate                  >= 1.6.12  && < 1.7,-                      vector                    >= 0.11    && < 1.0,-                      mtl                       >= 2.0     && < 3.0-  -- Depend on GHC to obtain the maximum tuple size via-  -- import GHC.Settings.Constants (mAX_TUPLE_SIZE)-  if flag(large-tuples)-    Build-Depends:    ghc                       >= 9.6.0 && < 9.13--test-suite doctests-  type:             exitcode-stdio-1.0-  default-language: Haskell2010-  main-is:          doctests.hs-  ghc-options:      -Wall -Wcompat -threaded-  hs-source-dirs:   tests--  if !flag(doctests)-    buildable: False-  else-    build-depends:-      base,-      clash-prelude,-      doctest-parallel >= 0.3.1 && < 0.5,-      filepath--  if arch(x86_64) && flag(workaround-ghc-mmap-crash)-    ghc-options:    -with-rtsopts=-xm20000000---test-suite unittests-  import:           common-options-  type:             exitcode-stdio-1.0-  main-is:          unittests.hs-  ghc-options:      -Wall -Wcompat -threaded-  -- Note that multiple -with-rtsopts are not cumulative-  if arch(x86_64) && flag(workaround-ghc-mmap-crash)-    ghc-options:    "-with-rtsopts=-N -xm20000000"-  else-    ghc-options:    -with-rtsopts=-N--  hs-source-dirs:   tests--  if !flag(unittests)-    buildable: False-  else-    build-depends:-      clash-prelude,--      ghc-typelits-knownnat,-      ghc-typelits-natnormalise,-      ghc-typelits-extra,--      base,-      binary,-      bytestring,-      containers,-      deepseq,-      hedgehog      >= 1.0.3    && < 1.6,-      hint          >= 0.7      && < 0.10,-      mmorph        >= 1.1.5    && < 1.3,-      quickcheck-classes-base >= 0.6 && < 1.0,-      tasty         >= 1.2      && < 1.6,-      tasty-hedgehog >= 1.2.0,-      tasty-hunit,-      tasty-th,-      tasty-quickcheck,-      template-haskell,-      text--  Other-Modules:-                 Clash.Tests.AsyncFIFOSynchronizer-                 Clash.Tests.AutoReg-                 Clash.Tests.BitPack-                 Clash.Tests.BitVector-                 Clash.Tests.BlockRam-                 Clash.Tests.BlockRam.Blob-                 Clash.Tests.Clocks-                 Clash.Tests.Counter-                 Clash.Tests.DumpVCD-                 Clash.Tests.NumConvert-                 Clash.Tests.DerivingDataRepr-                 Clash.Tests.DerivingDataReprTypes-                 Clash.Tests.Fixed-                 Clash.Tests.FixedExhaustive-                 Clash.Tests.Index-                 Clash.Tests.MaybeNumConvert-                 Clash.Tests.MaybeX-                 Clash.Tests.NFDataX-                 Clash.Tests.NumNewtypes-                 Clash.Tests.Ram-                 Clash.Tests.Reset-                 Clash.Tests.Resize-                 Clash.Tests.Signal-                 Clash.Tests.Signed-                 Clash.Tests.SizedNum-                 Clash.Tests.TopEntityGeneration-                 Clash.Tests.Unsigned-                 Clash.Tests.Vector-                 Clash.Tests.XException--                 Clash.Tests.Laws.Enum-                 Clash.Tests.Laws.Num-                 Clash.Tests.Laws.SaturatingNum--                 Hedgehog.Extra--                 Test.Tasty.HUnit.Extra-                 Test.Tasty.Hedgehog.Extra-                 Test.QuickCheck.Extra--benchmark benchmark-clash-prelude-  type:             exitcode-stdio-1.0-  default-language: Haskell2010-  main-is:          benchmark-main.hs-  ghc-options:      -O2 -Wall-  hs-source-dirs:   benchmarks--  ghc-options:      -with-rtsopts=-T--  if !flag(benchmarks)-    buildable: False-  else-    build-depends:-      base,-      clash-prelude,-      criterion         >= 1.3.0.0 && < 1.7,-      directory,-      deepseq,-      template-haskell--  Other-Modules:    BenchBitVector-                    BenchCommon-                    BenchFixed-                    BenchRAM-                    BenchSigned-                    BenchUnsigned-                    BenchVector+Cabal-version:        2.2
+Name:                 clash-prelude
+Version:              1.10.0
+x-revision: 1
+Synopsis:             Clash: a functional hardware description language - Prelude library
+Description:
+  Clash is a functional hardware description language that borrows both its
+  syntax and semantics from the functional programming language Haskell. The
+  Clash compiler transforms these high-level descriptions to low-level
+  synthesizable VHDL, Verilog, or SystemVerilog.
+  .
+  Features of Clash:
+  .
+  * 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:
+  .
+  * Prelude library containing datatypes and functions for circuit design
+  .
+  To use the library:
+  .
+  * Import "Clash.Prelude"
+  .
+  * Alternatively, if you want to explicitly route clock and reset ports,
+    for more straightforward multi-clock designs, you can import the
+    "Clash.Explicit.Prelude" module. Note that you should not import
+    "Clash.Prelude" and "Clash.Explicit.Prelude" at the same time as they
+    have overlapping definitions.
+  .
+  A preliminary version of a tutorial can be found at
+  <https://docs.clash-lang.org/tutorial>, for a general overview of the library
+  you should however check out "Clash.Prelude". Some circuit examples can be
+  found in "Clash.Examples".
+Homepage:             https://clash-lang.org/
+bug-reports:          https://github.com/clash-lang/clash-compiler/issues
+License:              BSD-2-Clause
+License-file:         LICENSE
+Author:               The Clash Authors
+Maintainer:           QBayLogic B.V. <devops@qbaylogic.com>
+Copyright:            Copyright © 2013-2016, University of Twente,
+                                  2016-2017, Myrtle Software Ltd,
+                                  2017-2019, QBayLogic B.V., Google Inc.,
+                                  2021-2026, QBayLogic B.V.
+Category:             Hardware
+Build-type:           Simple
+tested-with:          GHC == 9.6.7,
+                      GHC == 9.8.4,
+                      GHC == 9.10.3,
+                      GHC == 9.12.4
+
+Extra-source-files:   README.md
+                      CHANGELOG.md
+                      AUTHORS.md
+
+extra-doc-files:      doc/*.svg
+
+source-repository head
+  type: git
+  location: https://github.com/clash-lang/clash-compiler.git
+  subdir: clash-prelude
+
+flag large-tuples
+  description:
+    Generate instances for classes such as `NFDataX` and `BitPack` for tuples
+    up to and including 62 elements - the GHC imposed maximum. Note that this
+    greatly increases compile times for `clash-prelude`.
+  default: False
+  manual: True
+
+flag super-strict
+  description:
+    Use `deepseqX` (instead of `seqX`) in register-like constructs. This can
+    help to eliminate space leaks when using lazy data structures in
+    registers-like constructs. This potentially slows down Clash hardware
+    simulation.
+  default: False
+  manual: True
+
+flag strict-mapSignal
+  description:
+    Use `seqX` in 'mapSignal#'. This can help to eliminate space leaks in long
+    running simulations.
+  default: False
+  manual: True
+
+flag doctests
+  description:
+    You can disable testing with doctests using `-f-doctests`.
+  default: True
+  manual: True
+
+flag unittests
+  description:
+    You can disable testing with unittests using `-f-unittests`.
+  default: True
+  manual: True
+
+flag benchmarks
+  description:
+    You can disable testing with benchmarks using `-f-benchmarks`.
+  default: True
+  manual: True
+
+flag workaround-ghc-mmap-crash
+  description:
+    Only use this flag when hit by GHC bug #19421. See clash-compiler PR #2444.
+  default: False
+  manual: True
+
+common common-options
+  default-language:   Haskell2010
+  default-extensions: BangPatterns
+                      BinaryLiterals
+                      DataKinds
+                      DefaultSignatures
+                      DeriveDataTypeable
+                      DeriveFoldable
+                      DeriveFunctor
+                      DeriveGeneric
+                      DeriveLift
+                      DeriveTraversable
+                      DerivingStrategies
+                      InstanceSigs
+                      KindSignatures
+                      MagicHash
+                      NoStarIsType
+                      PolyKinds
+                      PostfixOperators
+                      ScopedTypeVariables
+                      StandaloneDeriving
+                      TupleSections
+                      TypeApplications
+                      TypeOperators
+                      ViewPatterns
+
+Library
+  import:             common-options
+  HS-Source-Dirs:     src
+
+  ghc-options:        -Wall -Wcompat -fexpose-all-unfoldings -fno-worker-wrapper
+  CPP-Options:        -DCABAL
+
+  if flag(large-tuples)
+    CPP-Options: -DLARGE_TUPLES
+
+  if flag(super-strict)
+    CPP-Options: -DCLASH_SUPER_STRICT
+
+  if flag(strict-mapSignal)
+    CPP-Options: -DCLASH_STRICT_MAPSIGNAL
+
+  Autogen-Modules:    Paths_clash_prelude
+
+  Exposed-modules:    Clash.Annotations.TopEntity
+                      Clash.Annotations.Primitive
+                      Clash.Annotations.BitRepresentation
+                      Clash.Annotations.BitRepresentation.Deriving
+                      Clash.Annotations.BitRepresentation.Internal
+                      Clash.Annotations.BitRepresentation.Util
+                      Clash.Annotations.SynthesisAttributes
+                      Clash.Annotations.TH
+
+                      Clash.Class.AutoReg
+                      Clash.Class.AutoReg.Internal
+                      Clash.Class.BitPack
+                      Clash.Class.BitPack.BitIndex
+                      Clash.Class.BitPack.BitReduction
+                      Clash.Class.BitPack.Internal
+                      Clash.Class.BitPack.Internal.TH
+                      Clash.Class.Counter
+                      Clash.Class.Counter.Internal
+                      Clash.Class.Counter.TH
+                      Clash.Class.Exp
+                      Clash.Class.HasDomain
+                      Clash.Class.HasDomain.HasSingleDomain
+                      Clash.Class.HasDomain.HasSpecificDomain
+                      Clash.Class.HasDomain.CodeGen
+                      Clash.Class.HasDomain.Common
+                      Clash.Class.Num
+                      Clash.Class.NumConvert
+                      Clash.Class.NumConvert.Internal.NumConvert
+                      Clash.Class.NumConvert.Internal.MaybeNumConvert
+                      Clash.Class.NumConvert.Internal.Canonical
+                      Clash.Class.Parity
+                      Clash.Class.Resize
+
+                      Clash.Clocks
+
+                      Clash.Explicit.BlockRam
+                      Clash.Explicit.BlockRam.Blob
+                      Clash.Explicit.BlockRam.File
+                      Clash.Explicit.BlockRam.Internal
+                      Clash.Explicit.BlockRam.Model
+                      Clash.Explicit.DDR
+                      Clash.Explicit.Mealy
+                      Clash.Explicit.Moore
+                      Clash.Explicit.RAM
+                      Clash.Explicit.ROM
+                      Clash.Explicit.ROM.Blob
+                      Clash.Explicit.ROM.File
+                      Clash.Explicit.Prelude
+                      Clash.Explicit.Prelude.Safe
+                      Clash.Explicit.Reset
+                      Clash.Explicit.SimIO
+                      Clash.Explicit.Signal
+                      Clash.Explicit.Signal.Delayed
+                      Clash.Explicit.Synchronizer
+                      Clash.Explicit.Testbench
+                      Clash.Explicit.Verification
+
+                      Clash.HaskellPrelude
+
+                      Clash.Hidden
+
+                      Clash.Intel.ClockGen
+                      Clash.Intel.DDR
+
+                      Clash.Magic
+
+                      Clash.Num.Erroring
+                      Clash.Num.Overflowing
+                      Clash.Num.Saturating
+                      Clash.Num.Wrapping
+                      Clash.Num.Zeroing
+
+                      Clash.NamedTypes
+
+                      Clash.Prelude
+                      Clash.Prelude.BlockRam
+                      Clash.Prelude.BlockRam.Blob
+                      Clash.Prelude.BlockRam.File
+                      Clash.Prelude.Mealy
+                      Clash.Prelude.Moore
+                      Clash.Prelude.RAM
+                      Clash.Prelude.ROM
+                      Clash.Prelude.ROM.Blob
+                      Clash.Prelude.ROM.File
+                      Clash.Prelude.Safe
+                      Clash.Prelude.Testbench
+
+                      Clash.Promoted.Nat
+                      Clash.Promoted.Nat.Literals
+                      Clash.Promoted.Nat.TH
+                      Clash.Promoted.Nat.Unsafe
+                      Clash.Promoted.Symbol
+
+                      Clash.Signal
+                      Clash.Signal.Bundle
+                      Clash.Signal.BiSignal
+                      Clash.Signal.Delayed
+                      Clash.Signal.Delayed.Internal
+                      Clash.Signal.Delayed.Bundle
+                      Clash.Signal.Internal
+                      Clash.Signal.Internal.Ambiguous
+                      Clash.Signal.Trace
+
+                      Clash.Sized.BitVector
+                      Clash.Sized.Fixed
+                      Clash.Sized.Index
+                      Clash.Sized.RTree
+                      Clash.Sized.Signed
+                      Clash.Sized.Unsigned
+                      Clash.Sized.Vector
+                      Clash.Sized.Vector.ToTuple
+                      Clash.Sized.Vector.ToTuple.TH
+
+                      Clash.Sized.Internal.BitVector
+                      Clash.Sized.Internal.Index
+                      Clash.Sized.Internal.Mod
+                      Clash.Sized.Internal.Signed
+                      Clash.Sized.Internal.Unsigned
+
+                      Clash.Verification
+                      Clash.Verification.DSL
+                      Clash.Verification.Internal
+
+                      Clash.XException
+                      Clash.XException.Internal
+                      Clash.XException.MaybeX
+                      Clash.XException.TH
+
+                      Clash.Xilinx.ClockGen
+                      Clash.Xilinx.DDR
+
+                      Clash.Tutorial
+                      Clash.Examples
+                      Clash.Examples.Internal
+
+  other-modules:
+                      Clash.Class.AutoReg.Instances
+                      Clash.Clocks.Internal
+                      Clash.CPP
+                      Clash.Signal.Bundle.Internal
+                      Clash.Sized.Internal
+                      Language.Haskell.TH.Compat
+                      Paths_clash_prelude
+
+  other-extensions:   CPP
+                      ConstraintKinds
+                      FlexibleContexts
+                      FlexibleInstances
+                      GADTs
+                      GeneralizedNewtypeDeriving
+                      MultiParamTypeClasses
+                      PatternSynonyms
+                      RankNTypes
+                      TemplateHaskell
+                      TypeFamilies
+                      UndecidableInstances
+
+  Build-depends:      adjunctions               >= 4.0     && < 5.0,
+                      array                     >= 0.5.1.0 && < 0.6,
+                      arrows                    >= 0.4     && < 0.5,
+                      base                      >= 4.18    && < 5,
+                      binary                    >= 0.8.5   && < 0.11,
+                      bytestring                >= 0.10.8  && < 0.13,
+                      constraints               >= 0.9     && < 1.0,
+                      containers                >= 0.4.0   && < 0.9,
+                      data-binary-ieee754       >= 0.4.4   && < 0.6,
+                      data-default              >= 0.7     && < 0.9,
+                      deepseq                   >= 1.4.1.0 && < 1.6,
+                      distributive              >= 0.1     && < 1.0,
+                      extra                     >= 1.6.17  && < 1.9,
+                      ghc-bignum                >= 1.0     && < 1.4,
+                      ghc-prim                  >= 0.5.1.0 && < 0.14,
+                      ghc-typelits-extra        >= 0.5.3   && < 0.6,
+                      ghc-typelits-knownnat     >= 0.8.3   && < 0.9,
+                      ghc-typelits-natnormalise >= 0.9.5   && < 0.10,
+                      hashable                  >= 1.2.1.0  && < 1.6,
+                      half                      >= 0.2.2.3 && < 1.0,
+                      infinite-list           ^>= 0.1,
+                      lens                      >= 4.10    && < 5.4,
+                      QuickCheck                >= 2.7     && < 2.19,
+                      recursion-schemes         >= 5.1     && < 5.3,
+                      reflection                >= 2       && < 2.2,
+                      singletons                >= 2.0     && < 3.1,
+                      string-interpolate        ^>= 0.3,
+                      tagged                    >= 0.8     && < 0.9,
+                      template-haskell          >= 2.20.0.0 && < 2.24,
+                      th-abstraction            >= 0.3.0 && < 0.8.0,
+                      th-lift                   >= 0.7.0    && < 0.9,
+                      th-orphans                >= 0.13.1   && < 1.0,
+                      text                      >= 0.11.3.1 && < 2.2,
+                      time                      >= 1.8     && < 1.15,
+                      transformers              >= 0.5.2.0 && < 0.7,
+                      type-errors               >= 0.2.0.0 && < 0.3,
+                      uniplate                  >= 1.6.12  && < 1.7,
+                      vector                    >= 0.11    && < 1.0,
+                      mtl                       >= 2.0     && < 3.0
+  -- Depend on GHC to obtain the maximum tuple size via
+  -- import GHC.Settings.Constants (mAX_TUPLE_SIZE)
+  if flag(large-tuples)
+    Build-Depends:    ghc                       >= 9.6.0 && < 9.13
+
+test-suite doctests
+  type:             exitcode-stdio-1.0
+  default-language: Haskell2010
+  main-is:          doctests.hs
+  ghc-options:      -Wall -Wcompat -threaded
+  hs-source-dirs:   tests
+
+  if !flag(doctests)
+    buildable: False
+  else
+    build-depends:
+      base,
+      clash-prelude,
+      doctest-parallel >= 0.3.1 && < 0.5,
+      filepath
+
+  if arch(x86_64) && flag(workaround-ghc-mmap-crash)
+    ghc-options:    -with-rtsopts=-xm20000000
+
+
+test-suite unittests
+  import:           common-options
+  type:             exitcode-stdio-1.0
+  main-is:          unittests.hs
+  ghc-options:      -Wall -Wcompat -threaded
+  -- Note that multiple -with-rtsopts are not cumulative
+  if arch(x86_64) && flag(workaround-ghc-mmap-crash)
+    ghc-options:    "-with-rtsopts=-N -xm20000000"
+  else
+    ghc-options:    -with-rtsopts=-N
+
+  hs-source-dirs:   tests
+
+  if !flag(unittests)
+    buildable: False
+  else
+    build-depends:
+      clash-prelude,
+
+      ghc-typelits-knownnat,
+      ghc-typelits-natnormalise,
+      ghc-typelits-extra,
+
+      base,
+      binary,
+      bytestring,
+      containers,
+      deepseq,
+      hedgehog      >= 1.0.3    && < 1.8,
+      hint          >= 0.7      && < 0.10,
+      mmorph        >= 1.1.5    && < 1.3,
+      quickcheck-classes-base >= 0.6 && < 1.0,
+      tasty         >= 1.2      && < 1.6,
+      tasty-hedgehog >= 1.2.0,
+      tasty-hunit,
+      tasty-th,
+      tasty-quickcheck,
+      template-haskell,
+      text
+
+  Other-Modules:
+                 Clash.Tests.AsyncFIFOSynchronizer
+                 Clash.Tests.AutoReg
+                 Clash.Tests.BitPack
+                 Clash.Tests.BitVector
+                 Clash.Tests.BlockRam
+                 Clash.Tests.BlockRam.Blob
+                 Clash.Tests.Clocks
+                 Clash.Tests.Counter
+                 Clash.Tests.DumpVCD
+                 Clash.Tests.NumConvert
+                 Clash.Tests.DerivingDataRepr
+                 Clash.Tests.DerivingDataReprTypes
+                 Clash.Tests.Fixed
+                 Clash.Tests.FixedExhaustive
+                 Clash.Tests.Index
+                 Clash.Tests.MaybeNumConvert
+                 Clash.Tests.MaybeX
+                 Clash.Tests.NFDataX
+                 Clash.Tests.NumNewtypes
+                 Clash.Tests.Ram
+                 Clash.Tests.Reset
+                 Clash.Tests.Resize
+                 Clash.Tests.Signal
+                 Clash.Tests.Signed
+                 Clash.Tests.SizedNum
+                 Clash.Tests.TopEntityGeneration
+                 Clash.Tests.Unsigned
+                 Clash.Tests.Vector
+                 Clash.Tests.XException
+
+                 Clash.Tests.Laws.Enum
+                 Clash.Tests.Laws.Num
+                 Clash.Tests.Laws.SaturatingNum
+
+                 Hedgehog.Extra
+
+                 Test.Tasty.HUnit.Extra
+                 Test.Tasty.Hedgehog.Extra
+                 Test.QuickCheck.Extra
+
+benchmark benchmark-clash-prelude
+  type:             exitcode-stdio-1.0
+  default-language: Haskell2010
+  main-is:          benchmark-main.hs
+  ghc-options:      -O2 -Wall
+  hs-source-dirs:   benchmarks
+
+  ghc-options:      -with-rtsopts=-T
+
+  if !flag(benchmarks)
+    buildable: False
+  else
+    build-depends:
+      base,
+      clash-prelude,
+      criterion         >= 1.3.0.0 && < 1.7,
+      directory,
+      deepseq,
+      template-haskell
+
+  Other-Modules:    BenchBitVector
+                    BenchCommon
+                    BenchFixed
+                    BenchRAM
+                    BenchSigned
+                    BenchUnsigned
+                    BenchVector