| Copyright | (c) 2023 Sayo Koyoneda |
|---|---|
| License | MPL-2.0 (see the file LICENSE) |
| Maintainer | ymdfield@outlook.jp |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | GHC2021 |
Data.Effect.TH
Description
Synopsis
- makeEffect' :: MakeEffectConf -> (EffectOrder -> Info -> DataInfo -> EffClsInfo -> EffectClassConf -> Q [Dec]) -> [Name] -> [Name] -> Q [Dec]
- noExtTemplate :: EffectOrder -> Info -> DataInfo -> EffClsInfo -> EffectClassConf -> Q [Dec]
- makeEffect :: [Name] -> [Name] -> Q [Dec]
- makeEffectF :: [Name] -> Q [Dec]
- makeEffectH :: [Name] -> Q [Dec]
- makeEffect_ :: [Name] -> [Name] -> Q [Dec]
- makeEffectH_ :: [Name] -> Q [Dec]
- module Data.Default
- (&) :: a -> (a -> b) -> b
- data EffectOrder
- orderOf :: EffClsInfo -> EffectOrder
- newtype MakeEffectConf = MakeEffectConf {}
- alterEffectClassConf :: (EffectClassConf -> EffectClassConf) -> MakeEffectConf -> MakeEffectConf
- alterEffectConf :: (EffectConf -> EffectConf) -> MakeEffectConf -> MakeEffectConf
- data EffectClassConf = EffectClassConf {}
- confByEffect :: Lens' EffectClassConf (Name -> EffectConf)
- doesDeriveHFunctor :: Lens' EffectClassConf Bool
- doesGenerateLiftFOEPatternSynonyms :: Lens' EffectClassConf Bool
- doesGenerateLiftFOETypeSynonym :: Lens' EffectClassConf Bool
- data EffectConf = EffectConf {}
- keyedSenderGenConf :: Lens' EffectConf (Maybe SenderFunctionConf)
- normalSenderGenConf :: Lens' EffectConf (Maybe SenderFunctionConf)
- taggedSenderGenConf :: Lens' EffectConf (Maybe SenderFunctionConf)
- warnFirstOrderInHOE :: Lens' EffectConf Bool
- data SenderFunctionConf
- senderFnName :: Lens' SenderFunctionConf String
- doesGenerateSenderFnSignature :: Lens' SenderFunctionConf Bool
- senderFnDoc :: Lens' SenderFunctionConf (Maybe String -> Q (Maybe String))
- senderFnArgDoc :: Lens' SenderFunctionConf (Int -> Maybe String -> Q (Maybe String))
- senderFnConfs :: Traversal' EffectConf SenderFunctionConf
- deriveHFunctor :: (Infinite (Q Type) -> Q Type) -> DataInfo -> Q [Dec]
- noDeriveHFunctor :: MakeEffectConf -> MakeEffectConf
- generateLiftFOETypeSynonym :: MakeEffectConf -> MakeEffectConf
- noGenerateLiftFOETypeSynonym :: MakeEffectConf -> MakeEffectConf
- generateLiftFOEPatternSynonyms :: MakeEffectConf -> MakeEffectConf
- noGenerateLiftFOEPatternSynonyms :: MakeEffectConf -> MakeEffectConf
- noGenerateNormalSenderFunction :: MakeEffectConf -> MakeEffectConf
- noGenerateTaggedSenderFunction :: MakeEffectConf -> MakeEffectConf
- noGenerateKeyedSenderFunction :: MakeEffectConf -> MakeEffectConf
- suppressFirstOrderInHigherOrderEffectWarning :: MakeEffectConf -> MakeEffectConf
- noGenerateSenderFunctionSignature :: MakeEffectConf -> MakeEffectConf
Documentation
makeEffect' :: MakeEffectConf -> (EffectOrder -> Info -> DataInfo -> EffClsInfo -> EffectClassConf -> Q [Dec]) -> [Name] -> [Name] -> Q [Dec] Source #
noExtTemplate :: EffectOrder -> Info -> DataInfo -> EffClsInfo -> EffectClassConf -> Q [Dec] Source #
module Data.Default
(&) :: a -> (a -> b) -> b infixl 1 #
& is a reverse application operator. This provides notational
convenience. Its precedence is one higher than that of the forward
application operator $, which allows & to be nested in $.
This is a version of , where flip idid is specialized from a -> a to (a -> b) -> (a -> b)
which by the associativity of (->) is (a -> b) -> a -> b.
flipping this yields a -> (a -> b) -> b which is the type signature of &
Examples
>>>5 & (+1) & show"6"
>>>sqrt $ [1 / n^2 | n <- [1..1000]] & sum & (*6)3.1406380562059946
Since: base-4.8.0.0
data EffectOrder Source #
An order of effect.
Constructors
| FirstOrder | |
| HigherOrder |
Instances
| Show EffectOrder Source # | |
Defined in Data.Effect.TH.Internal Methods showsPrec :: Int -> EffectOrder -> ShowS # show :: EffectOrder -> String # showList :: [EffectOrder] -> ShowS # | |
| Eq EffectOrder Source # | |
Defined in Data.Effect.TH.Internal | |
| Ord EffectOrder Source # | |
Defined in Data.Effect.TH.Internal Methods compare :: EffectOrder -> EffectOrder -> Ordering # (<) :: EffectOrder -> EffectOrder -> Bool # (<=) :: EffectOrder -> EffectOrder -> Bool # (>) :: EffectOrder -> EffectOrder -> Bool # (>=) :: EffectOrder -> EffectOrder -> Bool # max :: EffectOrder -> EffectOrder -> EffectOrder # min :: EffectOrder -> EffectOrder -> EffectOrder # | |
orderOf :: EffClsInfo -> EffectOrder Source #
newtype MakeEffectConf Source #
Constructors
| MakeEffectConf | |
Fields | |
Instances
| Default MakeEffectConf Source # | |
Defined in Data.Effect.TH.Internal Methods def :: MakeEffectConf # | |
alterEffectClassConf :: (EffectClassConf -> EffectClassConf) -> MakeEffectConf -> MakeEffectConf Source #
alterEffectConf :: (EffectConf -> EffectConf) -> MakeEffectConf -> MakeEffectConf Source #
data EffectClassConf Source #
Constructors
| EffectClassConf | |
Instances
| Default EffectClassConf Source # | |
Defined in Data.Effect.TH.Internal Methods def :: EffectClassConf # | |
confByEffect :: Lens' EffectClassConf (Name -> EffectConf) Source #
data EffectConf Source #
Constructors
| EffectConf | |
data SenderFunctionConf Source #
senderFnDoc :: Lens' SenderFunctionConf (Maybe String -> Q (Maybe String)) Source #