From 4c10ce92041dc73a95aeb64aca241dd937ffaa5c Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Mon, 14 Sep 2020 07:49:33 +0200 Subject: Use Seq as base monad in the validator It is more natural to implement the logic: try to apply each rule to each node. --- src/Language/GraphQL/Validate/Validation.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Language/GraphQL/Validate/Validation.hs') diff --git a/src/Language/GraphQL/Validate/Validation.hs b/src/Language/GraphQL/Validate/Validation.hs index a513467..4432478 100644 --- a/src/Language/GraphQL/Validate/Validation.hs +++ b/src/Language/GraphQL/Validate/Validation.hs @@ -11,8 +11,9 @@ module Language.GraphQL.Validate.Validation , Validation(..) ) where -import Control.Monad.Trans.Reader (ReaderT(..)) +import Control.Monad.Trans.Reader (ReaderT) import Data.HashMap.Strict (HashMap) +import Data.Sequence (Seq) import Data.Text (Text) import Language.GraphQL.AST.Document import Language.GraphQL.Type.Schema (Schema) @@ -39,7 +40,6 @@ data Validation m = Validation { ast :: Document , schema :: Schema m , types :: HashMap Name (Schema.Type m) - , rules :: [Rule m] } -- | 'Rule' assigns a function to each AST node that can be validated. If the @@ -55,4 +55,4 @@ data Rule m | FieldRule (Field -> RuleT m) -- | Monad transformer used by the rules. -type RuleT m = ReaderT (Validation m) Maybe Error +type RuleT m = ReaderT (Validation m) Seq Error -- cgit v1.2.3