Copyright | (c) 2023 Sayo Koyoneda |
---|---|
License | MPL-2.0 (see the file LICENSE) |
Maintainer | [email protected] |
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
id
id
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 #