Copyright | (c) Sirui Lu 2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.TH.Derivation.DeriveMergeable
Description
Synopsis
- deriveMergeable :: DeriveConfig -> Name -> Q [Dec]
- deriveMergeable1 :: DeriveConfig -> Name -> Q [Dec]
- deriveMergeable2 :: DeriveConfig -> Name -> Q [Dec]
- deriveMergeable3 :: DeriveConfig -> Name -> Q [Dec]
- genMergeableAndGetMergingInfoResult :: DeriveConfig -> Name -> Int -> Q (MergingInfoResult, [Dec])
- genMergeable :: DeriveConfig -> Name -> Int -> Q [Dec]
- genMergeable' :: DeriveConfig -> MergingInfoResult -> Name -> Int -> Q (Name, [Dec])
- genMergeableNoExistential :: DeriveConfig -> Name -> Int -> Q [Dec]
- genMergeableNoStrategy :: DeriveConfig -> Name -> Int -> Q [Dec]
- genMergeableList :: DeriveConfig -> Name -> [Int] -> Q [Dec]
Documentation
deriveMergeable :: DeriveConfig -> Name -> Q [Dec] Source #
Derive Mergeable
instance for GADT.
deriveMergeable1 :: DeriveConfig -> Name -> Q [Dec] Source #
Derive Mergeable1
instance for GADT.
deriveMergeable2 :: DeriveConfig -> Name -> Q [Dec] Source #
Derive Mergeable2
instance for GADT.
deriveMergeable3 :: DeriveConfig -> Name -> Q [Dec] Source #
Derive Mergeable3
instance for GADT.
genMergeableAndGetMergingInfoResult :: DeriveConfig -> Name -> Int -> Q (MergingInfoResult, [Dec]) Source #
Generate Mergeable
instance and merging information for a data type.
genMergeable :: DeriveConfig -> Name -> Int -> Q [Dec] Source #
Generate Mergeable
instance for a data type.
genMergeable' :: DeriveConfig -> MergingInfoResult -> Name -> Int -> Q (Name, [Dec]) Source #
Generate Mergeable
instance for a data type, using a given merging info
result.
genMergeableNoExistential :: DeriveConfig -> Name -> Int -> Q [Dec] Source #
Generate Mergeable
instance for a data type without existential variables.
genMergeableNoStrategy :: DeriveConfig -> Name -> Int -> Q [Dec] Source #
Generate Mergeable
instance for a data type, using NoStrategy
.
genMergeableList :: DeriveConfig -> Name -> [Int] -> Q [Dec] Source #
Generate multiple Mergeable
instances for a data type.