-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Compatibility checker for OpenAPI -- -- Compatibility checker for OpenAPI. @package compaREST @version 0.1.0.0 module Data.OpenApi.Compare.Common zipAll :: [a] -> [b] -> Maybe [(a, b)] -- | Utilities for effectfully memoizing other, more effectful functions. module Data.OpenApi.Compare.Memo -- | An effectful memoization monad. type MonadMemo s m = MonadState (MemoState s) m data MemoState s -- | Run a memoized computation. runMemo :: Monad m => s -> StateT (MemoState s) m a -> m a modifyMemoNonce :: MonadMemo s m => (s -> s) -> m s -- | A description of how to effectfully tie knots in type v, -- using the m monad, and by sharing some d data among -- the recursive instances. data KnotTier v d m KnotTier :: m d -> (d -> m v) -> (d -> v -> m v) -> KnotTier v d m -- | Create some data that will be connected to this knot [$sel:onKnotFound:KnotTier] :: KnotTier v d m -> m d -- | This is what the knot will look like as a value to the inner -- computations [$sel:onKnotUsed:KnotTier] :: KnotTier v d m -> d -> m v -- | Once we're done and we're outside, tie the knot using the datum [$sel:tieKnot:KnotTier] :: KnotTier v d m -> d -> v -> m v unknot :: KnotTier v Void m -- | Run a potentially recursive computation. The provided key will be used -- to refer to the result of this computation. If during the computation, -- another attempt to run the computation with the same key is made, we -- run a tying-the-knot procedure. -- -- If another attempt to run the computation with the same key is made -- *after we're done*, we will return the memoized value. memoWithKnot :: forall k v d m s. (Typeable k, Typeable v, Typeable d, Ord k, MonadMemo s m) => KnotTier v d m -> m v -> k -> m v -- | Disambiguate memoized computations with an arbitrary tag. memoTaggedWithKnot :: forall t k v d m s. (Typeable t, Typeable k, Typeable v, Typeable d, Ord k, MonadMemo s m) => KnotTier v d m -> m v -> k -> m v module Data.OpenApi.Compare.Orphans instance GHC.Classes.Ord Data.OpenApi.Internal.Reference instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.OpenApi.Internal.Referenced a) instance GHC.Classes.Ord Data.OpenApi.Internal.Schema instance GHC.Classes.Ord Data.OpenApi.Internal.AdditionalProperties instance GHC.Classes.Ord Data.OpenApi.Internal.Discriminator instance GHC.Classes.Ord Data.OpenApi.Internal.Xml instance GHC.Classes.Ord Data.OpenApi.Internal.OpenApiType instance GHC.Classes.Ord Data.OpenApi.Internal.Style instance GHC.Classes.Ord Data.OpenApi.Internal.OpenApiItems instance GHC.Classes.Ord Data.OpenApi.Internal.ParamLocation instance GHC.Classes.Ord Data.OpenApi.Internal.HttpSchemeType instance GHC.Classes.Ord Data.OpenApi.Internal.ApiKeyParams instance GHC.Classes.Ord Data.OpenApi.Internal.ApiKeyLocation instance (GHC.Classes.Eq e, GHC.Classes.Eq (w a)) => GHC.Classes.Eq (Control.Comonad.Trans.Env.EnvT e w a) instance (GHC.Classes.Ord e, GHC.Classes.Ord (w a)) => GHC.Classes.Ord (Control.Comonad.Trans.Env.EnvT e w a) instance (GHC.Show.Show e, GHC.Show.Show (w a)) => GHC.Show.Show (Control.Comonad.Trans.Env.EnvT e w a) instance (GHC.Classes.Ord k, GHC.Classes.Ord v) => GHC.Classes.Ord (Data.HashMap.Strict.InsOrd.InsOrdHashMap k v) -- | Utilities for traversing heterogeneous trees. A heterogeneous tree is -- a collection of datatypes that "contain" eachother in some form of -- tree structure. module Data.OpenApi.Compare.Paths type NiceQuiver (q :: k -> j -> Type) (a :: k) (b :: j) = (Typeable q, Typeable a, Typeable b, Ord (q a b), Show (q a b), AdditionalQuiverConstraints q a b) type family AdditionalQuiverConstraints (q :: k -> j -> Type) (a :: k) (b :: j) :: Constraint -- | All the possible ways to navigate between nodes in a heterogeneous -- tree form a quiver. The hom-sets of the free category constructed from -- this quiver are the sets of various multi-step paths between nodes. -- This is similar to a list, but indexed. The list is in reverse because -- in practice we append items at the end one at a time. data Paths (q :: k -> k -> Type) (a :: k) (b :: k) [Root] :: Paths q a a [Snoc] :: NiceQuiver q b c => Paths q a b -> !q b c -> Paths q a c infixl 5 `Snoc` -- | Like a differece list, but indexed. newtype DiffPaths (q :: k -> k -> Type) (a :: k) (b :: k) DiffPaths :: (forall c. Paths q c a -> Paths q c b) -> DiffPaths (q :: k -> k -> Type) (a :: k) (b :: k) catDiffPaths :: DiffPaths q a b -> DiffPaths q b c -> DiffPaths q a c -- | An item related to some path relative to the root r. data AnItem (q :: k -> k -> Type) (f :: k -> Type) (r :: k) [AnItem] :: Ord (f a) => Paths q r a -> !f a -> AnItem q f r step :: NiceQuiver q a b => q a b -> Paths q a b -- | Left-to-right composition (>>>) :: forall k cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c infixr 1 >>> -- | Right-to-left composition (<<<) :: forall k cat (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c infixr 1 <<< instance forall k (q :: k -> k -> *) (a :: k) (b :: k). GHC.Show.Show (Data.OpenApi.Compare.Paths.Paths q a b) instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k). GHC.Classes.Eq (Data.OpenApi.Compare.Paths.AnItem q f r) instance forall k (r :: k) (q :: k -> k -> *) (f :: k -> *). Data.Typeable.Internal.Typeable r => GHC.Classes.Ord (Data.OpenApi.Compare.Paths.AnItem q f r) instance forall k (q :: k -> k -> *). Control.Category.Category (Data.OpenApi.Compare.Paths.Paths q) instance forall k (q :: k -> k -> *) (a :: k). Data.Type.Equality.TestEquality (Data.OpenApi.Compare.Paths.Paths q a) instance forall k (q :: k -> k -> *) (a :: k) (b :: k). GHC.Classes.Eq (Data.OpenApi.Compare.Paths.Paths q a b) instance forall k (q :: k -> k -> *) (a :: k) (b :: k). GHC.Classes.Ord (Data.OpenApi.Compare.Paths.Paths q a b) module Data.OpenApi.Compare.Behavior -- | Kind data BehaviorLevel APILevel :: BehaviorLevel ServerLevel :: BehaviorLevel SecurityRequirementLevel :: BehaviorLevel SecuritySchemeLevel :: BehaviorLevel PathLevel :: BehaviorLevel OperationLevel :: BehaviorLevel PathFragmentLevel :: BehaviorLevel RequestLevel :: BehaviorLevel ResponseLevel :: BehaviorLevel HeaderLevel :: BehaviorLevel -- | either request or response data PayloadLevel :: BehaviorLevel SchemaLevel :: BehaviorLevel TypedSchemaLevel :: BehaviorLevel LinkLevel :: BehaviorLevel CallbackLevel :: BehaviorLevel class (Ord (Behave a b), Show (Behave a b)) => Behavable (a :: BehaviorLevel) (b :: BehaviorLevel) where { data family Behave a b; } describeBehavior :: Behavable a b => Behave a b -> Inlines data IssueKind -- | This is certainly an issue, we can demonstrate a "counterexample" CertainIssue :: IssueKind -- | Change looks breaking but we don't have a complete comprehension of -- the problem ProbablyIssue :: IssueKind -- | We don't really support this feature at all, outside structural -- comparison Unsupported :: IssueKind -- | This is not an issue in itself, but a clarifying comment providing -- context for some other issues Comment :: IssueKind -- | We detected an issue with one of the input schemata itself SchemaInvalid :: IssueKind class (Typeable l, Ord (Issue l), Show (Issue l)) => Issuable (l :: BehaviorLevel) where { data family Issue l :: Type; } -- | The same issues can be rendered in multiple places and might require -- different ways of represnting them to the user. -- -- In practice each issue requires a maximum of two different -- representations: based on the context the issue might need to be -- rendered as "opposite" (Backward) – for example when rendering -- non-breaking changes everything should be reversed (a consequence of -- the way we generate non-breaking changes). -- -- If _consumer_ doesn't have something, the element was "removed". If -- _producer_ doesn't have something, the element was "added". describeIssue :: Issuable l => Orientation -> Issue l -> Blocks issueKind :: Issuable l => Issue l -> IssueKind -- | An equivalence relation designating whether two issues are talking -- about the aspect of the schema. This is used to remove duplicates from -- the "reverse" error tree we get when we look for non-breaking changes. -- Generally if checking X->Y raises issue I, and checking Y->X -- raises issue J, I and J should be related. relatedIssues :: Issuable l => Issue l -> Issue l -> Bool data Orientation Forward :: Orientation Backward :: Orientation toggleOrientation :: Orientation -> Orientation -- | A set of interactions having common unifying features type Behavior = Paths Behave 'APILevel data AnIssue (l :: BehaviorLevel) [AnIssue] :: Issuable l => Orientation -> Issue l -> AnIssue l withClass :: Eq b => (a -> a -> Bool) -> (a -> Maybe b) -> a -> a -> Bool anIssueKind :: AnIssue l -> IssueKind relatedAnIssues :: AnIssue l -> AnIssue l -> Bool instance GHC.Show.Show Data.OpenApi.Compare.Behavior.IssueKind instance GHC.Classes.Ord Data.OpenApi.Compare.Behavior.IssueKind instance GHC.Classes.Eq Data.OpenApi.Compare.Behavior.IssueKind instance GHC.Show.Show Data.OpenApi.Compare.Behavior.Orientation instance GHC.Classes.Ord Data.OpenApi.Compare.Behavior.Orientation instance GHC.Classes.Eq Data.OpenApi.Compare.Behavior.Orientation instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.AnIssue l) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.AnIssue l) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.AnIssue l) instance Data.Aeson.Types.ToJSON.ToJSON (Data.OpenApi.Compare.Behavior.AnIssue l) instance Data.OpenApi.Compare.Behavior.Issuable l => Data.Aeson.Types.ToJSON.ToJSON (Data.OpenApi.Compare.Behavior.Issue l) module Data.OpenApi.Compare.PathsPrefixTree -- | A list of AnItem r f, but optimized into a prefix tree. data PathsPrefixTree (q :: k -> k -> Type) (f :: k -> Type) (r :: k) pattern PathsPrefixNode :: Ord (f r) => Set (f r) -> [WrapTypeable (AStep q f r)] -> PathsPrefixTree q f r data AStep (q :: k -> k -> Type) (f :: k -> Type) (r :: k) (a :: k) [AStep] :: NiceQuiver q r a => !Map (q r a) (PathsPrefixTree q f a) -> AStep q f r a empty :: PathsPrefixTree q f r singleton :: AnItem q f r -> PathsPrefixTree q f r fromList :: [AnItem q f r] -> PathsPrefixTree q f r null :: PathsPrefixTree q f r -> Bool foldWith :: forall q f m r. Monoid m => (forall a. Ord (f a) => Paths q r a -> f a -> m) -> PathsPrefixTree q f r -> m toList :: PathsPrefixTree q f r -> [AnItem q f r] filter :: (forall a. f a -> Bool) -> PathsPrefixTree q f r -> PathsPrefixTree q f r filterWithKey :: (forall a. Paths q r a -> f a -> Bool) -> PathsPrefixTree q f r -> PathsPrefixTree q f r -- | Select a subtree by prefix takeSubtree :: forall q f r a. Paths q r a -> PathsPrefixTree q f r -> PathsPrefixTree q f a lookup :: Paths q r a -> PathsPrefixTree q f r -> Set (f a) -- | Embed a subtree in a larger tree with given prefix embed :: Paths q r a -> PathsPrefixTree q f a -> PathsPrefixTree q f r -- | The number of leaves. size :: PathsPrefixTree q f r -> Int partition :: (forall a. f a -> Bool) -> PathsPrefixTree q f r -> (PathsPrefixTree q f r, PathsPrefixTree q f r) map :: (forall x. f x -> f x) -> PathsPrefixTree q f r -> PathsPrefixTree q f r instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k). GHC.Show.Show (f r) => GHC.Show.Show (Data.OpenApi.Compare.PathsPrefixTree.PathsPrefixTree q f r) instance forall k (q :: k -> k -> *) (f :: k -> *) (a :: k). GHC.Classes.Eq (Data.OpenApi.Compare.PathsPrefixTree.PathsPrefixTree q f a) instance GHC.Show.Show a => GHC.Show.Show (Data.OpenApi.Compare.PathsPrefixTree.ASet a) instance GHC.Classes.Eq (Data.OpenApi.Compare.PathsPrefixTree.ASet a) instance GHC.Classes.Ord (Data.OpenApi.Compare.PathsPrefixTree.ASet a) instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k) (a :: k). GHC.Classes.Eq (Data.OpenApi.Compare.PathsPrefixTree.AStep q f r a) instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k) (a :: k). GHC.Classes.Ord (Data.OpenApi.Compare.PathsPrefixTree.AStep q f r a) instance forall k (f :: k -> *) (q :: k -> k -> *) (r :: k). (forall (a :: k). Data.Aeson.Types.ToJSON.ToJSON (f a)) => Data.Aeson.Types.ToJSON.ToJSON (Data.OpenApi.Compare.PathsPrefixTree.PathsPrefixTree q f r) instance GHC.Base.Semigroup Data.OpenApi.Compare.PathsPrefixTree.MergableObject instance GHC.Base.Monoid Data.OpenApi.Compare.PathsPrefixTree.MergableObject instance forall k (q :: k -> k -> *) (f :: k -> *) (a :: k). GHC.Classes.Ord (Data.OpenApi.Compare.PathsPrefixTree.PathsPrefixTree q f a) instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k). GHC.Base.Semigroup (Data.OpenApi.Compare.PathsPrefixTree.PathsPrefixTree q f r) instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k). GHC.Base.Monoid (Data.OpenApi.Compare.PathsPrefixTree.PathsPrefixTree q f r) instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Data.OpenApi.Compare.PathsPrefixTree.ASet a) instance GHC.Base.Semigroup (Data.OpenApi.Compare.PathsPrefixTree.ASet a) instance GHC.Base.Monoid (Data.OpenApi.Compare.PathsPrefixTree.ASet a) module Data.OpenApi.Compare.Formula -- | The type FormulaF f r () describes (modulo contents of -- errors) boolean formulas involving variables, conjunctions, and -- disjunctions. These operations (and the generated algebra) are -- monotonous. This ensures that fixpoints always exist, i.e. that x -- = f x has at least one solution. data FormulaF (q :: k -> k -> Type) (f :: k -> Type) (r :: k) (a :: Type) type VarRef = Int variable :: VarRef -> FormulaF q f r () eitherOf :: [FormulaF q' f' r' a] -> AnItem q f r -> FormulaF q f r a anError :: AnItem q f r -> FormulaF q f r a errors :: PathsPrefixTree q f r -> FormulaF q f r () calculate :: FormulaF q f r a -> Either (PathsPrefixTree q f r) a maxFixpoint :: VarRef -> FormulaF q f r () -> FormulaF q f r () mapErrors :: (PathsPrefixTree q f r -> PathsPrefixTree q' f' r') -> FormulaF q f r a -> FormulaF q' f' r' a instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k). GHC.Base.Functor (Data.OpenApi.Compare.Formula.FormulaF q f r) instance GHC.Base.Functor Data.OpenApi.Compare.Formula.SomeFormulaF instance forall k (q :: k -> k -> *) (f :: k -> *) (r :: k). GHC.Base.Applicative (Data.OpenApi.Compare.Formula.FormulaF q f r) module Data.OpenApi.Compare.Report.Html.Template template :: Template Text module Data.OpenApi.Compare.Subtree class (Typeable Step, Typeable a, Typeable b, Ord (Step a b), Show (Step a b)) => Steppable (a :: Type) (b :: Type) where { -- | How to get from an a node to a b node data family Step a b :: Type; } data TraceRoot type Trace = Paths Step TraceRoot type Traced a = Traced' a a type Traced' a b = Env (Trace a) b pattern Traced :: Trace a -> b -> Traced' a b traced :: Trace a -> a -> Traced a retraced :: (Trace a -> Trace a') -> Traced' a b -> Traced' a' b stepTraced :: Steppable a a' => Step a a' -> Traced' a b -> Traced' a' b class (Typeable t, Issuable (SubtreeLevel t)) => Subtree (t :: Type) where { type family CheckEnv t :: [Type]; type family SubtreeLevel t :: BehaviorLevel; } -- | Warning: You should not be calling this directly. Use -- checkSubstructure checkStructuralCompatibility :: Subtree t => HList (CheckEnv t) -> ProdCons (Traced t) -> StructuralCompatFormula () -- | Warning: You should not be calling this directly. Use -- checkCompatibility checkSemanticCompatibility :: Subtree t => HList (CheckEnv t) -> Behavior (SubtreeLevel t) -> ProdCons (Traced t) -> SemanticCompatFormula () checkCompatibility :: forall t xs. (ReassembleHList xs (CheckEnv t), Subtree t) => Behavior (SubtreeLevel t) -> HList xs -> ProdCons (Traced t) -> SemanticCompatFormula () checkSubstructure :: (ReassembleHList xs (CheckEnv t), Subtree t) => HList xs -> ProdCons (Traced t) -> StructuralCompatFormula () newtype CompatM a CompatM :: StateT (MemoState VarRef) Identity a -> CompatM a [$sel:unCompatM:CompatM] :: CompatM a -> StateT (MemoState VarRef) Identity a type CompatFormula' q f r = Compose CompatM (FormulaF q f r) type SemanticCompatFormula = CompatFormula' Behave AnIssue 'APILevel data ProdCons a ProdCons :: a -> a -> ProdCons a [$sel:producer:ProdCons] :: ProdCons a -> a [$sel:consumer:ProdCons] :: ProdCons a -> a orientProdCons :: Orientation -> ProdCons x -> ProdCons x swapProdCons :: SwapEnvRoles xs => (HList xs -> ProdCons x -> CompatFormula' q AnIssue r a) -> HList xs -> ProdCons x -> CompatFormula' q AnIssue r a runCompatFormula :: CompatFormula' q f r a -> Either (PathsPrefixTree q f r) a issueAt :: Issuable l => Paths q r l -> Issue l -> CompatFormula' q AnIssue r a anItem :: AnItem q AnIssue r -> CompatFormula' q AnIssue r a anIssue :: Issuable l => Issue l -> AnIssue l invertIssueOrientation :: CompatFormula' q AnIssue r a -> CompatFormula' q AnIssue r a invertIssueOrientationP :: PathsPrefixTree q AnIssue r -> PathsPrefixTree q AnIssue r embedFormula :: Paths q r l -> CompatFormula' q f l a -> CompatFormula' q f r a anyOfAt :: Issuable l => Paths q r l -> Issue l -> [CompatFormula' q AnIssue r a] -> CompatFormula' q AnIssue r a -- | If the given formula contains any issues, add another issue on top. -- Otherwise succeed. clarifyIssue :: AnItem q AnIssue r -> CompatFormula' q AnIssue r a -> CompatFormula' q AnIssue r a structuralIssue :: StructuralCompatFormula a structuralMaybe :: (Subtree a, ReassembleHList xs (CheckEnv a)) => HList xs -> ProdCons (Maybe (Traced a)) -> StructuralCompatFormula () structuralMaybeWith :: (ProdCons a -> StructuralCompatFormula ()) -> ProdCons (Maybe a) -> StructuralCompatFormula () structuralEq :: (Eq a, Comonad w) => ProdCons (w a) -> StructuralCompatFormula () iohmStructural :: (ReassembleHList (k : xs) (CheckEnv v), Ord k, Subtree v, Hashable k, Typeable k, Show k) => HList xs -> ProdCons (Traced (InsOrdHashMap k v)) -> StructuralCompatFormula () iohmStructuralWith :: (Ord k, Hashable k, Typeable k, Typeable v, Show k) => (k -> ProdCons (Traced v) -> StructuralCompatFormula ()) -> ProdCons (Traced (InsOrdHashMap k v)) -> StructuralCompatFormula () structuralList :: (Subtree a, ReassembleHList xs (CheckEnv a)) => HList xs -> ProdCons [Traced a] -> StructuralCompatFormula () -- | Left-to-right composition (>>>) :: forall k cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c infixr 1 >>> -- | Right-to-left composition (<<<) :: forall k cat (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c infixr 1 <<< -- |
--   extract . fmap f = f . extract
--   
extract :: Comonad w => w a -> a ask :: ComonadEnv e w => w a -> e -- | Modifies the environment using the specified function. local :: forall e e' (w :: Type -> Type) a. (e -> e') -> EnvT e w a -> EnvT e' w a step :: NiceQuiver q a b => q a b -> Paths q a b -- | The class Typeable allows a concrete representation of a type -- to be calculated. class Typeable (a :: k) instance GHC.Show.Show k => GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step (Data.HashMap.Strict.InsOrd.InsOrdHashMap k v) v) instance GHC.Classes.Ord k => GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step (Data.HashMap.Strict.InsOrd.InsOrdHashMap k v) v) instance GHC.Classes.Eq k => GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step (Data.HashMap.Strict.InsOrd.InsOrdHashMap k v) v) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Subtree.TraceRoot Data.OpenApi.Internal.OpenApi) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Subtree.TraceRoot Data.OpenApi.Internal.OpenApi) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Subtree.TraceRoot Data.OpenApi.Internal.OpenApi) instance Data.Traversable.Traversable Data.OpenApi.Compare.Subtree.ProdCons instance Data.Foldable.Foldable Data.OpenApi.Compare.Subtree.ProdCons instance GHC.Base.Functor Data.OpenApi.Compare.Subtree.ProdCons instance GHC.Show.Show a => GHC.Show.Show (Data.OpenApi.Compare.Subtree.ProdCons a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.ProdCons a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.ProdCons a) instance Control.Monad.State.Class.MonadState (Data.OpenApi.Compare.Memo.MemoState Data.OpenApi.Compare.Formula.VarRef) Data.OpenApi.Compare.Subtree.CompatM instance GHC.Base.Monad Data.OpenApi.Compare.Subtree.CompatM instance GHC.Base.Applicative Data.OpenApi.Compare.Subtree.CompatM instance GHC.Base.Functor Data.OpenApi.Compare.Subtree.CompatM instance GHC.Classes.Ord Data.OpenApi.Compare.Subtree.MemoKey instance GHC.Classes.Eq Data.OpenApi.Compare.Subtree.MemoKey instance forall k1 k2 (a :: k1) (b :: k2). GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.VoidQuiver a b) instance forall k1 k2 (a :: k1) (b :: k2). GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.VoidQuiver a b) instance forall k1 k2 (a :: k1) (b :: k2). GHC.Show.Show (Data.OpenApi.Compare.Subtree.VoidQuiver a b) instance Data.OpenApi.Compare.Subtree.SwapEnvRoles '[] instance (Data.OpenApi.Compare.Subtree.SwapEnvElementRoles x, Data.OpenApi.Compare.Subtree.SwapEnvRoles xs) => Data.OpenApi.Compare.Subtree.SwapEnvRoles (x : xs) instance Data.OpenApi.Compare.Subtree.SwapEnvElementRoles' (Data.OpenApi.Compare.Subtree.ProdCons x) 'GHC.Types.True instance (Data.OpenApi.Compare.Subtree.IsProdCons x GHC.Types.~ 'GHC.Types.False) => Data.OpenApi.Compare.Subtree.SwapEnvElementRoles' x 'GHC.Types.False instance GHC.Base.Applicative Data.OpenApi.Compare.Subtree.ProdCons instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Subtree.TraceRoot Data.OpenApi.Internal.OpenApi instance (Data.Typeable.Internal.Typeable k, Data.Typeable.Internal.Typeable v, GHC.Classes.Ord k, GHC.Show.Show k) => Data.OpenApi.Compare.Subtree.Steppable (Data.HashMap.Strict.InsOrd.InsOrdHashMap k v) v module Data.OpenApi.Compare.References -- | How to get from an a node to a b node data family Step a b :: Type dereference :: Typeable a => Traced (Definitions a) -> Traced (Referenced a) -> Traced a -- | The class Typeable allows a concrete representation of a type -- to be calculated. class Typeable (a :: k) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.Referenced a) a) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.Referenced a) a) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.Referenced a) a) instance Data.Typeable.Internal.Typeable a => Data.OpenApi.Compare.Subtree.Steppable (Data.OpenApi.Internal.Referenced a) a instance Data.OpenApi.Compare.Subtree.Subtree a => Data.OpenApi.Compare.Subtree.Subtree (Data.OpenApi.Internal.Referenced a) module Data.OpenApi.Compare.Validate.Link instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.LinkLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.LinkLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.LinkLevel) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Link instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.LinkLevel module Data.OpenApi.Compare.Validate.OAuth2Flows -- | How to get from an a node to a b node data family Step a b :: Type data family Issue l :: Type data family Behave a b instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OAuth2Flows (Data.OpenApi.Internal.OAuth2Flow t)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OAuth2Flows (Data.OpenApi.Internal.OAuth2Flow t)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OAuth2Flows (Data.OpenApi.Internal.OAuth2Flow t)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.OAuth2Flow t) t) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.OAuth2Flow t) t) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.OAuth2Flow t) t) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.OAuth2Flows instance Data.Typeable.Internal.Typeable t => Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OAuth2Flows (Data.OpenApi.Internal.OAuth2Flow t) instance (Data.Typeable.Internal.Typeable t, Data.OpenApi.Compare.Subtree.Subtree t, Data.OpenApi.Compare.Subtree.SubtreeLevel (Data.OpenApi.Internal.OAuth2Flow t) GHC.Types.~ Data.OpenApi.Compare.Subtree.SubtreeLevel t) => Data.OpenApi.Compare.Subtree.Subtree (Data.OpenApi.Internal.OAuth2Flow t) instance Data.Typeable.Internal.Typeable t => Data.OpenApi.Compare.Subtree.Steppable (Data.OpenApi.Internal.OAuth2Flow t) t instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.OAuth2ImplicitFlow instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.OAuth2PasswordFlow instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.OAuth2ClientCredentialsFlow instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.OAuth2AuthorizationCodeFlow instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel 'Data.OpenApi.Compare.Behavior.SecuritySchemeLevel -- | Checks product-like entities. The key is some identificator for the -- product element. Each element may be required or optional. -- -- One example of product is request parameters. There are optional and -- required parameters. The client and server have possibly different set -- of parameters. What we must check is if server requires some request -- parameter, then this parameter must be presented by client and their -- schemas must match. -- -- So when we checking products we are checking from the server's -- (consumer) perspective, ensuring that all parameters are provided by -- the client (producer) and their schemas match. -- -- This module abstracts this logic for arbitrary elements module Data.OpenApi.Compare.Validate.Products checkProducts :: (Ord k, Issuable l) => Paths q r l -> (k -> Issue l) -> (k -> ProdCons t -> CompatFormula' q AnIssue r ()) -> ProdCons (Map k (ProductLike t)) -> CompatFormula' q AnIssue r () -- | Some entity which is product-like data ProductLike a ProductLike :: a -> Bool -> ProductLike a [$sel:productValue:ProductLike] :: ProductLike a -> a [$sel:required:ProductLike] :: ProductLike a -> Bool module Data.OpenApi.Compare.Validate.Schema.DNF -- | A boolean formula (without "not") represented as a Disjunctive Normal -- Form: the formula is a disjunction of a set of clauses, each of which -- is a conjunction of a set of some elementary formulas. Invariant: no -- two disjuncts imply eachother newtype DNF a DNF :: Set (Disjunct a) -> DNF a newtype Disjunct a Disjunct :: Set a -> Disjunct a pattern SingleDisjunct :: Ord a => Disjunct a -> DNF a pattern TopDNF :: DNF a pattern BottomDNF :: DNF a pattern LiteralDNF :: Ord a => a -> DNF a foldDNF :: BoundedLattice l => (a -> l) -> DNF a -> l forDNF :: (BoundedLattice l, Applicative f) => (a -> f l) -> DNF a -> f l instance GHC.Show.Show a => GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.DNF.Disjunct a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.DNF.Disjunct a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.DNF.Disjunct a) instance GHC.Show.Show a => GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.DNF.DNF a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.DNF.DNF a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.DNF.DNF a) instance GHC.Base.Applicative f => GHC.Base.Applicative (Data.OpenApi.Compare.Validate.Schema.DNF.LiftA f) instance GHC.Base.Functor f => GHC.Base.Functor (Data.OpenApi.Compare.Validate.Schema.DNF.LiftA f) instance (Algebra.Lattice.Lattice a, GHC.Base.Applicative f) => Algebra.Lattice.Lattice (Data.OpenApi.Compare.Validate.Schema.DNF.LiftA f a) instance (Algebra.Lattice.BoundedJoinSemiLattice a, GHC.Base.Applicative f) => Algebra.Lattice.BoundedJoinSemiLattice (Data.OpenApi.Compare.Validate.Schema.DNF.LiftA f a) instance (Algebra.Lattice.BoundedMeetSemiLattice a, GHC.Base.Applicative f) => Algebra.Lattice.BoundedMeetSemiLattice (Data.OpenApi.Compare.Validate.Schema.DNF.LiftA f a) instance GHC.Classes.Ord a => Algebra.Lattice.Lattice (Data.OpenApi.Compare.Validate.Schema.DNF.DNF a) instance GHC.Classes.Ord a => Algebra.Lattice.BoundedJoinSemiLattice (Data.OpenApi.Compare.Validate.Schema.DNF.DNF a) instance GHC.Classes.Ord a => Algebra.Lattice.BoundedMeetSemiLattice (Data.OpenApi.Compare.Validate.Schema.DNF.DNF a) module Data.OpenApi.Compare.Validate.Schema.Traced -- | How to get from an a node to a b node data family Step a b :: Type tracedAllOf :: Traced Schema -> Maybe [Traced (Referenced Schema)] tracedAnyOf :: Traced Schema -> Maybe [Traced (Referenced Schema)] tracedOneOf :: Traced Schema -> Maybe [Traced (Referenced Schema)] tracedItems :: Traced Schema -> Maybe (Either (Traced (Referenced Schema)) [Traced (Referenced Schema)]) tracedAdditionalProperties :: Traced Schema -> Maybe (Either Bool (Traced (Referenced Schema))) tracedDiscriminator :: Traced Schema -> Maybe (Traced Discriminator) tracedProperties :: Traced Schema -> InsOrdHashMap Text (Traced (Referenced Schema)) tracedConjunct :: NonEmpty (Traced (Referenced Schema)) -> Traced (Referenced Schema) data PartitionLocation PHere :: PartitionLocation PInProperty :: Text -> PartitionLocation -> PartitionLocation data PartitionChoice CByEnumValue :: Set Value -> PartitionChoice CByProperties :: Set Text -> Set Text -> PartitionChoice type Partition = (PartitionLocation, PartitionChoice) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema))) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema))) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema))) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema Data.OpenApi.Internal.Discriminator) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema Data.OpenApi.Internal.Discriminator) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Schema Data.OpenApi.Internal.Discriminator) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Discriminator (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema))) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Discriminator (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema))) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Discriminator (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema))) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.Traced.PartitionChoice instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.Traced.PartitionChoice instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.Traced.PartitionChoice instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.Traced.PartitionLocation instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.Traced.PartitionLocation instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.Traced.PartitionLocation instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance Data.OpenApi.Compare.Subtree.Steppable (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Schema (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Schema Data.OpenApi.Internal.Discriminator instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Discriminator (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) module Data.OpenApi.Compare.Validate.Schema.TypedJson -- | Type of a JSON value data JsonType Null :: JsonType Boolean :: JsonType Number :: JsonType String :: JsonType Array :: JsonType Object :: JsonType describeJSONType :: IsString s => JsonType -> s -- | A Value whose type we know data TypedValue :: JsonType -> Type [TNull] :: TypedValue 'Null [TBool] :: !Bool -> TypedValue 'Boolean [TNumber] :: !Scientific -> TypedValue 'Number [TString] :: !Text -> TypedValue 'String [TArray] :: !Array -> TypedValue 'Array [TObject] :: !Object -> TypedValue 'Object untypeValue :: TypedValue t -> Value data ForeachType (f :: JsonType -> Type) ForeachType :: f 'Null -> f 'Boolean -> f 'Number -> f 'String -> f 'Array -> f 'Object -> ForeachType (f :: JsonType -> Type) [$sel:forNull:ForeachType] :: ForeachType (f :: JsonType -> Type) -> f 'Null [$sel:forBoolean:ForeachType] :: ForeachType (f :: JsonType -> Type) -> f 'Boolean [$sel:forNumber:ForeachType] :: ForeachType (f :: JsonType -> Type) -> f 'Number [$sel:forString:ForeachType] :: ForeachType (f :: JsonType -> Type) -> f 'String [$sel:forArray:ForeachType] :: ForeachType (f :: JsonType -> Type) -> f 'Array [$sel:forObject:ForeachType] :: ForeachType (f :: JsonType -> Type) -> f 'Object foldType :: Monoid m => (forall x. Typeable x => JsonType -> (ForeachType f -> f x) -> m) -> m forType_ :: Applicative m => (forall x. Typeable x => JsonType -> (ForeachType f -> f x) -> m ()) -> m () instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType instance GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.TypedJson.TypedValue t) instance GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.TypedJson.TypedValue t) instance GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.TypedJson.TypedValue t) instance (forall (x :: Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType). Data.Typeable.Internal.Typeable x => GHC.Classes.Eq (f x)) => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.TypedJson.ForeachType f) instance (forall (x :: Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType). Data.Typeable.Internal.Typeable x => GHC.Classes.Ord (f x)) => GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.TypedJson.ForeachType f) instance (forall (x :: Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType). Data.Typeable.Internal.Typeable x => GHC.Show.Show (f x)) => GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.TypedJson.ForeachType f) instance (forall (x :: Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType). Algebra.Lattice.Lattice (f x)) => Algebra.Lattice.Lattice (Data.OpenApi.Compare.Validate.Schema.TypedJson.ForeachType f) instance (forall (x :: Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType). Algebra.Lattice.BoundedJoinSemiLattice (f x)) => Algebra.Lattice.BoundedJoinSemiLattice (Data.OpenApi.Compare.Validate.Schema.TypedJson.ForeachType f) instance (forall (x :: Data.OpenApi.Compare.Validate.Schema.TypedJson.JsonType). Algebra.Lattice.BoundedMeetSemiLattice (f x)) => Algebra.Lattice.BoundedMeetSemiLattice (Data.OpenApi.Compare.Validate.Schema.TypedJson.ForeachType f) module Data.OpenApi.Compare.Validate.Schema.JsonFormula data Bound a Exclusive :: !a -> Bound a Inclusive :: !a -> Bound a showBound :: Show a => Bound a -> Inlines data Property Property :: Bool -> ForeachType JsonFormula -> Traced (Referenced Schema) -> Property [$sel:propRequired:Property] :: Property -> Bool [$sel:propFormula:Property] :: Property -> ForeachType JsonFormula [$sel:propRefSchema:Property] :: Property -> Traced (Referenced Schema) -- | A primitive structural condition for the "top level" of a JSON value -- (of a specific type) data Condition :: JsonType -> Type [Exactly] :: TypedValue t -> Condition t [Maximum] :: !Bound Scientific -> Condition 'Number [Minimum] :: !Down (Bound (Down Scientific)) -> Condition 'Number [MultipleOf] :: !Scientific -> Condition 'Number [NumberFormat] :: !Format -> Condition 'Number [MaxLength] :: !Integer -> Condition 'String [MinLength] :: !Integer -> Condition 'String [Pattern] :: !Pattern -> Condition 'String [StringFormat] :: !Format -> Condition 'String [Items] :: !ForeachType JsonFormula -> !Traced (Referenced Schema) -> Condition 'Array [TupleItems] :: ![(ForeachType JsonFormula, Traced (Referenced Schema))] -> Condition 'Array [MaxItems] :: !Integer -> Condition 'Array [MinItems] :: !Integer -> Condition 'Array [UniqueItems] :: Condition 'Array [Properties] :: !Map Text Property -> !ForeachType JsonFormula -> !Maybe (Traced (Referenced Schema)) -> Condition 'Object [MaxProperties] :: !Integer -> Condition 'Object [MinProperties] :: !Integer -> Condition 'Object showCondition :: Condition a -> Blocks satisfiesTyped :: TypedValue t -> Condition t -> Bool checkStringFormat :: Format -> Text -> Bool checkNumberFormat :: Format -> Scientific -> Bool data SomeCondition [SomeCondition] :: Typeable t => Condition t -> SomeCondition newtype JsonFormula t JsonFormula :: DNF (Condition t) -> JsonFormula t [$sel:getJsonFormula:JsonFormula] :: JsonFormula t -> DNF (Condition t) satisfiesFormula :: TypedValue t -> JsonFormula t -> Bool satisfies :: Value -> ForeachType JsonFormula -> Bool showJSONValue :: Value -> Blocks showJSONValueInline :: Value -> Inlines instance GHC.Base.Functor Data.OpenApi.Compare.Validate.Schema.JsonFormula.Bound instance GHC.Show.Show a => GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.JsonFormula.Bound a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.JsonFormula.Bound a) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.JsonFormula.Property instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.JsonFormula.Property instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.JsonFormula.Property instance Algebra.Lattice.BoundedMeetSemiLattice (Data.OpenApi.Compare.Validate.Schema.JsonFormula.JsonFormula t) instance Algebra.Lattice.BoundedJoinSemiLattice (Data.OpenApi.Compare.Validate.Schema.JsonFormula.JsonFormula t) instance Algebra.Lattice.Lattice (Data.OpenApi.Compare.Validate.Schema.JsonFormula.JsonFormula t) instance GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.JsonFormula.JsonFormula t) instance GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.JsonFormula.JsonFormula t) instance GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.JsonFormula.JsonFormula t) instance GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.JsonFormula.Condition t) instance GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.JsonFormula.Condition t) instance GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.JsonFormula.Condition t) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.JsonFormula.SomeCondition instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.JsonFormula.SomeCondition instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.JsonFormula.SomeCondition instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.JsonFormula.Bound a) module Data.OpenApi.Compare.Validate.Schema.Partition partitionSchema :: Traced Schema -> PartitionM (Lifted Partitions) partitionRefSchema :: Traced (Referenced Schema) -> PartitionM (Lifted Partitions) selectPartition :: Lifted Partitions -> Maybe (PartitionLocation, Set PartitionChoice) runPartitionM :: Traced (Definitions Schema) -> PartitionM a -> a tryPartition :: ProdCons (Traced (Definitions Schema)) -> ProdCons (JsonFormula t) -> [(Maybe Partition, ProdCons (JsonFormula t))] showPartition :: Partition -> Inlines intersectSchema :: PartitionLocation -> PartitionChoice -> Traced Schema -> IntersectionM Schema intersectRefSchema :: PartitionLocation -> PartitionChoice -> Traced (Referenced Schema) -> IntersectionM (Referenced Schema) data IntersectionResult a Disjoint :: IntersectionResult a Same :: a -> IntersectionResult a New :: a -> IntersectionResult a runIntersectionM :: Traced (Definitions Schema) -> IntersectionM a -> IntersectionResult a type Partition = (PartitionLocation, PartitionChoice) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.Partition.PartitionData instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.Partition.PartitionData instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.Partition.PartitionData instance GHC.Show.Show Data.OpenApi.Compare.Validate.Schema.Partition.Partitions instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Schema.Partition.Partitions instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Schema.Partition.Partitions instance GHC.Show.Show a => GHC.Show.Show (Data.OpenApi.Compare.Validate.Schema.Partition.IntersectionResult a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.OpenApi.Compare.Validate.Schema.Partition.IntersectionResult a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Schema.Partition.IntersectionResult a) instance Algebra.Lattice.Lattice Data.OpenApi.Compare.Validate.Schema.Partition.Partitions instance Algebra.Lattice.BoundedMeetSemiLattice Data.OpenApi.Compare.Validate.Schema.Partition.Partitions module Data.OpenApi.Compare.Validate.Schema.Issues data family Issue l :: Type data family Behave a b instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.SchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.SchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.SchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.SchemaLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.SchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.TypedSchemaLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel module Data.OpenApi.Compare.Validate.Schema.Process schemaToFormula :: Traced (Definitions Schema) -> Traced Schema -> (ForeachType JsonFormula, PathsPrefixTree Behave AnIssue 'SchemaLevel) instance forall k (w :: k). GHC.Base.Monad (Data.OpenApi.Compare.Validate.Schema.Process.Silent w) instance forall k (w :: k). GHC.Base.Applicative (Data.OpenApi.Compare.Validate.Schema.Process.Silent w) instance forall k (w :: k). GHC.Base.Functor (Data.OpenApi.Compare.Validate.Schema.Process.Silent w) instance GHC.Base.Monoid w => Control.Monad.Writer.Class.MonadWriter w (Data.OpenApi.Compare.Validate.Schema.Process.Silent w) module Data.OpenApi.Compare.Validate.Schema instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Schema module Data.OpenApi.Compare.Validate.Param data family Behave a b data family Issue l :: Type instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PathFragmentLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PathFragmentLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PathFragmentLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PathFragmentLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PathFragmentLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PathFragmentLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Param (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Param (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Param (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Param.EncodingStyle instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Param.EncodingStyle instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Param.EncodingStyle instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.PathFragmentLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.PathFragmentLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Param instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Param (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) module Data.OpenApi.Compare.Validate.PathFragment parsePath :: FilePath -> [PathFragment Text] -- | Fragment parameterized by parameter. The dynamic part may be either -- reference to some parameter (in context of operation) or dereferenced -- parameter itself. data PathFragment param StaticPath :: Text -> PathFragment param DynamicPath :: param -> PathFragment param type PathFragmentParam = PathFragment (Traced Param) instance GHC.Base.Functor Data.OpenApi.Compare.Validate.PathFragment.PathFragment instance GHC.Show.Show param => GHC.Show.Show (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) instance GHC.Classes.Ord param => GHC.Classes.Ord (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) instance GHC.Classes.Eq param => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) Data.OpenApi.Internal.Param) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) Data.OpenApi.Internal.Param) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) Data.OpenApi.Internal.Param) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Compare.Validate.PathFragment.PathFragmentParam instance Data.Typeable.Internal.Typeable param => Data.OpenApi.Compare.Subtree.Steppable (Data.OpenApi.Compare.Validate.PathFragment.PathFragment param) Data.OpenApi.Internal.Param module Data.OpenApi.Compare.Validate.Header instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Header (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Header (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Header (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.HeaderLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.HeaderLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.HeaderLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.HeaderLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.HeaderLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.HeaderLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Header instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Header (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.HeaderLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.HeaderLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel module Data.OpenApi.Compare.Validate.MediaTypeObject data family Issue l :: Type data family Behave a b instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PayloadLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PayloadLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PayloadLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Encoding)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Encoding)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Encoding)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject Data.OpenApi.Internal.Encoding) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject Data.OpenApi.Internal.Encoding) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.MediaTypeObject Data.OpenApi.Internal.Encoding) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Encoding (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header))) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Encoding (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header))) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Encoding (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header))) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ResponseLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ResponseLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ResponseLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.OperationLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.OperationLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.OperationLevel) instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.PayloadLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.PayloadLevel 'Data.OpenApi.Compare.Behavior.SchemaLevel instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.MediaTypeObject instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Encoding instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Schema) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.MediaTypeObject (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Encoding) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.MediaTypeObject Data.OpenApi.Internal.Encoding instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Encoding (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header)) instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ResponseLevel instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.OperationLevel module Data.OpenApi.Compare.Validate.SecurityScheme instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.SecurityScheme Data.OpenApi.Internal.SecuritySchemeType) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.SecurityScheme Data.OpenApi.Internal.SecuritySchemeType) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.SecurityScheme Data.OpenApi.Internal.SecuritySchemeType) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.SecuritySchemeType Data.OpenApi.Internal.OAuth2Flows) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.SecuritySchemeType Data.OpenApi.Internal.OAuth2Flows) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.SecuritySchemeType Data.OpenApi.Internal.OAuth2Flows) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.SecurityScheme instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.SecurityScheme Data.OpenApi.Internal.SecuritySchemeType instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.SecuritySchemeType Data.OpenApi.Internal.OAuth2Flows module Data.OpenApi.Compare.Validate.SecurityRequirement data family Issue l :: Type instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.SecurityRequirement module Data.OpenApi.Compare.Validate.Server data family Issue l :: Type instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ServerLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ServerLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ServerLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.ServerLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.ServerLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.ServerLevel) instance Data.Traversable.Traversable Data.OpenApi.Compare.Validate.Server.ServerUrlPart instance Data.Foldable.Foldable Data.OpenApi.Compare.Validate.Server.ServerUrlPart instance GHC.Base.Functor Data.OpenApi.Compare.Validate.Server.ServerUrlPart instance GHC.Show.Show var => GHC.Show.Show (Data.OpenApi.Compare.Validate.Server.ServerUrlPart var) instance GHC.Classes.Eq var => GHC.Classes.Eq (Data.OpenApi.Compare.Validate.Server.ServerUrlPart var) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step [Data.OpenApi.Internal.Server] Data.OpenApi.Compare.Validate.Server.ProcessedServer) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step [Data.OpenApi.Internal.Server] Data.OpenApi.Compare.Validate.Server.ProcessedServer) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step [Data.OpenApi.Internal.Server] Data.OpenApi.Compare.Validate.Server.ProcessedServer) instance Data.OpenApi.Compare.Subtree.Steppable [Data.OpenApi.Internal.Server] Data.OpenApi.Compare.Validate.Server.ProcessedServer instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Compare.Validate.Server.ProcessedServer instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.ServerLevel instance Data.OpenApi.Compare.Subtree.Subtree [Data.OpenApi.Internal.Server] instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.ServerLevel module Data.OpenApi.Compare.Validate.Sums checkSums :: (Ord k, Issuable l) => Paths q r l -> (k -> Issue l) -> (k -> ProdCons t -> CompatFormula' q AnIssue r ()) -> ProdCons (Map k t) -> CompatFormula' q AnIssue r () module Data.OpenApi.Compare.Validate.Responses data family Behave a b instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.ResponseLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.ResponseLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.ResponseLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.HeaderLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.HeaderLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.HeaderLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Responses (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Responses (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Responses (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response Data.OpenApi.Internal.MediaTypeObject) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response Data.OpenApi.Internal.MediaTypeObject) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response Data.OpenApi.Internal.MediaTypeObject) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header))) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header))) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header))) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Link))) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Link))) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Link))) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Responses (Data.HashMap.Strict.InsOrd.InsOrdHashMap Data.OpenApi.Internal.HttpStatusCode (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response))) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Responses (Data.HashMap.Strict.InsOrd.InsOrdHashMap Data.OpenApi.Internal.HttpStatusCode (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response))) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Responses (Data.HashMap.Strict.InsOrd.InsOrdHashMap Data.OpenApi.Internal.HttpStatusCode (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response))) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Responses instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.ResponseLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.ResponseLevel 'Data.OpenApi.Compare.Behavior.HeaderLevel instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Response instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Responses (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Response Data.OpenApi.Internal.MediaTypeObject instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Response (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header)) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Definitions (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Link)) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Response (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Header) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Responses (Data.HashMap.Strict.InsOrd.InsOrdHashMap Data.OpenApi.Internal.HttpStatusCode (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Response)) module Data.OpenApi.Compare.Validate.RequestBody data family Issue l :: Type data family Behave a b instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.RequestLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.RequestLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.RequestLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.RequestLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.RequestLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.RequestLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.RequestBody Data.OpenApi.Internal.MediaTypeObject) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.RequestBody Data.OpenApi.Internal.MediaTypeObject) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.RequestBody Data.OpenApi.Internal.MediaTypeObject) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.RequestBody (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.RequestBody (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.RequestBody (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject)) instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.RequestLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.RequestLevel 'Data.OpenApi.Compare.Behavior.PayloadLevel instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.RequestBody instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.RequestBody Data.OpenApi.Internal.MediaTypeObject instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.RequestBody (Data.HashMap.Strict.InsOrd.InsOrdHashMap Network.HTTP.Media.MediaType.Internal.MediaType Data.OpenApi.Internal.MediaTypeObject) module Data.OpenApi.Compare.Validate.Operation data MatchedOperation MatchedOperation :: !Operation -> ![Traced Param] -> ![Traced Param] -> [Traced PathFragmentParam] -> MatchedOperation [$sel:operation:MatchedOperation] :: MatchedOperation -> !Operation -- | Params from the PathItem [$sel:pathParams:MatchedOperation] :: MatchedOperation -> ![Traced Param] -- | Path fragments traced from PathItem. Takes full list of -- operation-specific parameters [$sel:getPathFragments:MatchedOperation] :: MatchedOperation -> ![Traced Param] -> [Traced PathFragmentParam] data OperationMethod GetMethod :: OperationMethod PutMethod :: OperationMethod PostMethod :: OperationMethod DeleteMethod :: OperationMethod OptionsMethod :: OperationMethod HeadMethod :: OperationMethod PatchMethod :: OperationMethod TraceMethod :: OperationMethod pathItemMethod :: OperationMethod -> PathItem -> Maybe Operation data ProcessedPathItem ProcessedPathItem :: FilePath -> PathItem -> ProcessedPathItem [$sel:path:ProcessedPathItem] :: ProcessedPathItem -> FilePath [$sel:item:ProcessedPathItem] :: ProcessedPathItem -> PathItem newtype ProcessedPathItems ProcessedPathItems :: [ProcessedPathItem] -> ProcessedPathItems [$sel:unProcessedPathItems:ProcessedPathItems] :: ProcessedPathItems -> [ProcessedPathItem] processPathItems :: [(FilePath, PathItem)] -> ProcessedPathItems -- | How to get from an a node to a b node data family Step a b :: Type data family Behave a b data family Issue l :: Type instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.PathFragmentLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.PathFragmentLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.PathFragmentLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.RequestLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.RequestLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.RequestLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.APILevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.APILevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.APILevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.APILevel 'Data.OpenApi.Compare.Behavior.PathLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.APILevel 'Data.OpenApi.Compare.Behavior.PathLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.APILevel 'Data.OpenApi.Compare.Behavior.PathLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.CallbackLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.CallbackLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.CallbackLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.CallbackLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.CallbackLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.CallbackLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.RequestBody)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.RequestBody)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.RequestBody)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.Responses) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.Responses) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.Responses) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.SecurityRequirement) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.SecurityRequirement) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.SecurityRequirement) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Callback)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Callback)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Callback)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation [Data.OpenApi.Internal.Server]) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation [Data.OpenApi.Internal.Server]) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedOperation [Data.OpenApi.Internal.Server]) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Operation.OperationMethod instance GHC.Classes.Ord Data.OpenApi.Compare.Validate.Operation.OperationMethod instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Operation.OperationMethod instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PathLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PathLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Issue 'Data.OpenApi.Compare.Behavior.PathLevel) instance GHC.Show.Show (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PathLevel 'Data.OpenApi.Compare.Behavior.OperationLevel) instance GHC.Classes.Ord (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PathLevel 'Data.OpenApi.Compare.Behavior.OperationLevel) instance GHC.Classes.Eq (Data.OpenApi.Compare.Behavior.Behave 'Data.OpenApi.Compare.Behavior.PathLevel 'Data.OpenApi.Compare.Behavior.OperationLevel) instance GHC.Show.Show Data.OpenApi.Compare.Validate.Operation.ProcessedPathItem instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Operation.ProcessedPathItem instance GHC.Show.Show Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Callback Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Callback Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.Callback Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems) instance GHC.Classes.Eq Data.OpenApi.Compare.Validate.Operation.MatchedPathItem instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems Data.OpenApi.Compare.Validate.Operation.MatchedPathItem) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems Data.OpenApi.Compare.Validate.Operation.MatchedPathItem) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems Data.OpenApi.Compare.Validate.Operation.MatchedPathItem) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.Operation.MatchedOperation) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.Operation.MatchedOperation) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.Operation.MatchedOperation) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.PathFragment.PathFragmentParam) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.PathFragment.PathFragmentParam) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.PathFragment.PathFragmentParam) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Compare.Validate.Operation.MatchedPathItem instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems Data.OpenApi.Compare.Validate.Operation.MatchedPathItem instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.Operation.MatchedOperation instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedPathItem (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedPathItem Data.OpenApi.Compare.Validate.PathFragment.PathFragmentParam instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.Callback Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.PathLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.PathLevel 'Data.OpenApi.Compare.Behavior.OperationLevel instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Compare.Validate.Operation.MatchedOperation instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Param) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.RequestBody) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.Responses instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedOperation Data.OpenApi.Internal.SecurityRequirement instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedOperation (Data.OpenApi.Internal.Referenced Data.OpenApi.Internal.Callback) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Compare.Validate.Operation.MatchedOperation [Data.OpenApi.Internal.Server] instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.PathFragmentLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.RequestLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.SecurityRequirementLevel instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.APILevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.APILevel 'Data.OpenApi.Compare.Behavior.PathLevel instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.Callback instance Data.OpenApi.Compare.Behavior.Issuable 'Data.OpenApi.Compare.Behavior.CallbackLevel instance Data.OpenApi.Compare.Behavior.Behavable 'Data.OpenApi.Compare.Behavior.OperationLevel 'Data.OpenApi.Compare.Behavior.CallbackLevel module Data.OpenApi.Compare.Validate.OpenApi data family Behave a b data family Issue l :: Type instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.RequestBody)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.RequestBody)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.RequestBody)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Param)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Param)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Param)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.SecurityScheme)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.SecurityScheme)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.SecurityScheme)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Response)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Response)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Response)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Header)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Header)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Header)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Schema)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Schema)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Schema)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Link)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Link)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Link)) instance GHC.Show.Show (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Callback)) instance GHC.Classes.Ord (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Callback)) instance GHC.Classes.Eq (Data.OpenApi.Compare.Subtree.Step Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Callback)) instance Data.OpenApi.Compare.Subtree.Subtree Data.OpenApi.Internal.OpenApi instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi Data.OpenApi.Compare.Validate.Operation.ProcessedPathItems instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.RequestBody) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Param) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.SecurityScheme) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Response) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Header) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Schema) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Link) instance Data.OpenApi.Compare.Subtree.Steppable Data.OpenApi.Internal.OpenApi (Data.OpenApi.Internal.Definitions Data.OpenApi.Internal.Callback) module Data.OpenApi.Compare.Report.Jet newtype ReportJet f x ReportJet :: (forall a b m. (Typeable (f a b), Alternative m, Monad m) => f a b -> m x) -> ReportJet f x type ReportJet' f a = ReportJet f (Free (ReportJet f) a) -- | 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. class ConstructReportJet x f constructReportJet :: ConstructReportJet x f => x -> ReportJetResult f (Maybe Inlines) type ReportJetResult f = Free (ReportJet f) instance forall k1 k2 (f :: k1 -> k2 -> *). GHC.Base.Functor (Data.OpenApi.Compare.Report.Jet.ReportJet f) instance forall k1 k2 b (f :: k1 -> k2 -> *) a. (Data.OpenApi.Compare.Report.Jet.ConstructReportJet b f, Data.OpenApi.Compare.Report.Jet.JetArg a) => Data.OpenApi.Compare.Report.Jet.ConstructReportJet (a -> b) f instance forall k1 k2 (f :: k1 -> k2 -> *) (a :: k1) (b :: k2). Data.Typeable.Internal.Typeable (f a b) => Data.OpenApi.Compare.Report.Jet.JetArg (f a b) instance Data.OpenUnion.Extra.TryLiftUnion xs => Data.OpenApi.Compare.Report.Jet.JetArg (Data.OpenUnion.Internal.Union xs) instance Data.OpenApi.Compare.Report.Jet.JetArg x => Data.OpenApi.Compare.Report.Jet.JetArg (GHC.Base.NonEmpty x) instance forall k1 k2 (f :: k1 -> k2 -> *). Data.OpenApi.Compare.Report.Jet.ConstructReportJet (GHC.Maybe.Maybe Text.Pandoc.Builder.Inlines) f instance forall k1 k2 (f :: k1 -> k2 -> *). Data.OpenApi.Compare.Report.Jet.ConstructReportJet Text.Pandoc.Builder.Inlines f module Data.OpenApi.Compare.Report generateReport :: ReportConfig -> ReportInput -> (Blocks, ReportStatus) data CheckerOutput CheckerOutput :: Changes -> Changes -> CheckerOutput [$sel:forwardChanges:CheckerOutput] :: CheckerOutput -> Changes [$sel:backwardChanges:CheckerOutput] :: CheckerOutput -> Changes data ReportInput ReportInput :: Changes -> Changes -> Changes -> Changes -> ReportInput -- | forward CertainIssue, ProbablyIssue and Comment [$sel:breakingChanges:ReportInput] :: ReportInput -> Changes -- | backward CertainIssue, ProbablyIssue and Comment, -- except those shadowed by relatedIssues [$sel:nonBreakingChanges:ReportInput] :: ReportInput -> Changes -- | forward and backward Unsupported (assumed to be the same -- anyway) [$sel:unsupportedChanges:ReportInput] :: ReportInput -> Changes -- | forward and backward SchemaInvalid (assumed to be the same -- anyway) [$sel:schemaIssues:ReportInput] :: ReportInput -> Changes segregateIssues :: CheckerOutput -> ReportInput data ReportStatus BreakingChanges :: ReportStatus NoBreakingChanges :: ReportStatus -- | All changes that could be breaking are unsupported – we don't know if -- there actually are any breaking changes. OnlyUnsupportedChanges :: ReportStatus data Pandoc data ReportConfig ReportConfig :: ReportTreeStyle -> ReportMode -> ReportConfig [$sel:treeStyle:ReportConfig] :: ReportConfig -> ReportTreeStyle [$sel:reportMode:ReportConfig] :: ReportConfig -> ReportMode data ReportTreeStyle HeadersTreeStyle :: ReportTreeStyle FoldingBlockquotesTreeStyle :: ReportTreeStyle data ReportMode OnlyErrors :: ReportMode All :: ReportMode instance Data.Aeson.Types.ToJSON.ToJSON Data.OpenApi.Compare.Report.CheckerOutput instance GHC.Base.Monoid Data.OpenApi.Compare.Report.CheckerOutput instance GHC.Base.Semigroup Data.OpenApi.Compare.Report.CheckerOutput instance GHC.Generics.Generic Data.OpenApi.Compare.Report.CheckerOutput instance Data.Aeson.Types.ToJSON.ToJSON Data.OpenApi.Compare.Report.ReportInput instance GHC.Base.Monoid Data.OpenApi.Compare.Report.ReportInput instance GHC.Base.Semigroup Data.OpenApi.Compare.Report.ReportInput instance GHC.Generics.Generic Data.OpenApi.Compare.Report.ReportInput instance GHC.Classes.Eq Data.OpenApi.Compare.Report.ReportMode instance GHC.Generics.Generic Data.OpenApi.Compare.Report.Report instance GHC.Base.Semigroup Data.OpenApi.Compare.Report.Report instance GHC.Base.Monoid Data.OpenApi.Compare.Report.Report instance Data.Default.Class.Default Data.OpenApi.Compare.Report.ReportConfig module Data.OpenApi.Compare.Run runChecker :: (OpenApi, OpenApi) -> CheckerOutput runReport :: ReportConfig -> (OpenApi, OpenApi) -> (Blocks, ReportStatus)