anchor.diff:  type SchemaCompileMiddleware = 
       SchemaCompileContext -> (SchemaCompileContext -> unit) -> unit
   
  +/// A function signature that represents a middleware for the post-schema compilation phase.
  +type SchemaPostCompileMiddleware =
  +    ISchema -> (ISchema -> unit) -> unit
  +
   /// A function signature that represents a middleware for operation planning phase.
   /// I takes two arguments: A planning context, containing all the data used for the
   /// planning phase, and another function that can be called to pass
  
positive.code:     member __.CreateExecutionPlan(queryOrMutation: string, ?operationName: string, ?meta : Metadata) =
          let meta = defaultArg meta Metadata.Empty
          let ast = parse queryOrMutation
          createExecutionPlan (ast, operationName, meta)
negative.code:     do
          let compileCtx = { Schema = schema; TypeMap = schema.TypeMap; FieldExecuteMap = fieldExecuteMap }
          runMiddlewares (fun x -> x.CompileSchema) compileCtx compileSchema
          runMiddlewares (fun x -> x.PostCompileSchema) (upcast schema) ignore
          match Validation.validate schema.TypeMap with
          | Validation.Success -> ()
          | Validation.Error errors -> raise (GraphQLException (System.String.Join("\n", errors)))
  