Safe Haskell | None |
---|---|
Language | Haskell2010 |
Use like this:
mkHasGradInstances defaultBVarOptions [d| instance HasGrad MyRecord where type MScalar MyRecord = Float |]
Instance declaration passed to mkHasGradInstances
gives two important bits of information:
- Type variables for
MyRecord
, which can be concrete types (such asinstance HasGrad (MyRecord Float)
) or regular type variables (instance HasGrad (MyRecord a)
) - Scalar type.
Synopsis
- mkHasGradInstances :: BVarOptions -> Q [Dec] -> Q [Dec]
- data AffineSpaceOptions
- data RecordNamer = RecordNamer {
- typeConNamer :: String -> String
- dataConNamer :: String -> String
- fieldNamer :: String -> String
- data BVarOptions = BVarOptions {}
- defaultBVarOptions :: BVarOptions
Documentation
mkHasGradInstances :: BVarOptions -> Q [Dec] -> Q [Dec] Source #
Generates HasGrad
instance, along with Tang
and Grad
types,
VecBuilder
types and all other instances needed for HasGrad
.
data AffineSpaceOptions Source #
MakeAffineSpace | Generate AffineSpace instance |
NoAffineSpace | Don't generate AffineSpace instance |
AutoAffineSpace | Generate AffineSpace instance if |
data RecordNamer Source #
RecordNamer | |
|
data BVarOptions Source #
BVarOptions | |
|