commits
* Add ghc-8.10 to build matrix.
* Switch to cabal 3.2 (required by ghc-8.10).
For version 2.6 of the singletons library (which is version locked to
the GHC version) switched the 'Sing' type from a data family to a
type family.
This commit uses CPP hackery to workaround this change.
Closes: https://github.com/HuwCampbell/grenade/issues/94
- no `Data.Kind` module in this old GHC, so use CPP for conditional include
- also use CPP to define `Type=*` for backward compatibility
- `-XNoStarIsType` is new in GHC 8.6
- can't use `-XCPP` to conditionally enable `LANGUAGE` pragmas (implicit module declaration)
- use a conditional in the .cabal file, but this is active for all modules
- need to replace all `*` with `Type` and `import Data.Kind (Type)` (works in 8.4)
NoStarIsType -- otherwise GHC gets confused about * as a type operator
import Data.Kind (Type) -- to replace the usage of * as a type
UndecidableInstances -- otherwise GHC complains about nested KnownNat (a * b)
Since this project uses some of the new dependent types features of GHC
keeping it working with multiple GHC versions is going to be difficult.
Drop 7.10.3 because it has already stoppped working.
* Drop repeated and potentially conflicting version constraints. Version
constraints really only need to be specified once in the cabal file
(especially when building with mafia).
* Drop the version constraint on singletons. The singletons package
version number is tightly coupled to the GHC version (due to TH)
so its safe to leave the version bounds unspecified.
Simplify recurrent example
Produced better results when I tested (the Shakespeare example already contains a more complex recurrent network, let's KISS on this one.)
Add Serialize instance for Crop layer
Small fix to example network in readme
Added the sinusoid activation function layer
Optimise Wengert tape for LSTM
Bump optparse in examples package
Bump hedgehog and criterion
* Drop repeated and potentially conflicting version constraints. Version
constraints really only need to be specified once in the cabal file
(especially when building with mafia).
* Drop the version constraint on singletons. The singletons package
version number is tightly coupled to the GHC version (due to TH)
so its safe to leave the version bounds unspecified.