Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.OpenApi.Compare.Report.Jet
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 #
Constructors
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.
Methods
constructReportJet :: x -> ReportJetResult f (Maybe Inlines) Source #
Instances
ConstructReportJet Inlines (f :: k1 -> k2 -> Type) Source # | |
Defined in Data.OpenApi.Compare.Report.Jet Methods constructReportJet :: Inlines -> ReportJetResult f (Maybe Inlines) Source # | |
ConstructReportJet (Maybe Inlines) (f :: k1 -> k2 -> Type) Source # | |
Defined in Data.OpenApi.Compare.Report.Jet Methods 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 Methods constructReportJet :: (a -> b) -> ReportJetResult f (Maybe Inlines) Source # |
type ReportJetResult f = Free (ReportJet f) Source #