anchor.diff:  let directives =
       let directive =
           %% '@' -- +.name
  -        -% +.opts arguments -- ignored
  +        -..- +.optionalMany arguments
           -%> fun name args ->
               { DirectiveName = name; Arguments = args }
  -    directive * qty.[1..]
  +    qty.[0..] /. ignored * directive
   
   type FragmentName = string
   
  
positive.code: 
  let coreTypeDescription typeDescription =
      let listType =
          %% '[' -% +.(typeDescription * qty.[1..]) -% ']' -%> ListType
      let namedType =
          %% +.name -%> NamedType
      %[
  
negative.code: 
  let selections = precursive <| fun selections ->
      let selection =
          %% +.[
              %% +.field selections -%> FieldSelection
              %% +.fragmentSpread -%> FragmentSpreadSelection
              %% +.inlineFragment selections -%> InlineFragmentSelection
          ] -- ignored -%> auto
      %% '{' -..- +.(qty.[1..] * selection) -..- '}' -%> auto
  
  type CoreTypeDescription =
      | NamedType of TypeName
  