Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype ReportJet f x = ReportJet (forall a b m. (Typeable (f a b), Alternative m, Monad m) => f a b -> m x)
- type ReportJet' f a = ReportJet f (Free (ReportJet f) a)
- class ConstructReportJet x f where
- constructReportJet :: x -> ReportJetResult f (Maybe Inlines)
- type ReportJetResult f = Free (ReportJet f)
Documentation
newtype ReportJet f x Source #
ReportJet (forall a b m. (Typeable (f a b), Alternative m, Monad m) => f a b -> m x) |
class ConstructReportJet x f where Source #
A "jet" is a way of simplifying expressions from "outside". The "jetted" expressions should still be completely valid and correct without the jets. Jets just make the expression more "optimized" by identifying patterns and replacing the expressions with "better" ones that have the same sematics.
The term "jet" in this context was introduced in the Urbit project: https://urbit.org/docs/vere/jetting/
The pattern fits well for simplifying Behavior
tree paths.
constructReportJet :: x -> ReportJetResult f (Maybe Inlines) Source #
Instances
ConstructReportJet Inlines (f :: k1 -> k2 -> Type) Source # | |
Defined in Data.OpenApi.Compare.Report.Jet constructReportJet :: Inlines -> ReportJetResult f (Maybe Inlines) Source # | |
ConstructReportJet (Maybe Inlines) (f :: k1 -> k2 -> Type) Source # | |
Defined in Data.OpenApi.Compare.Report.Jet constructReportJet :: Maybe Inlines -> ReportJetResult f (Maybe Inlines) Source # | |
(ConstructReportJet b f, JetArg a) => ConstructReportJet (a -> b) (f :: k1 -> k2 -> Type) Source # | |
Defined in Data.OpenApi.Compare.Report.Jet constructReportJet :: (a -> b) -> ReportJetResult f (Maybe Inlines) Source # |
type ReportJetResult f = Free (ReportJet f) Source #