anchor.diff:                  if length > 1
                   then AstError.AsResult(sprintf "There are %i arguments with name '%s' defined in %s. Field arguments must be unique." length name fieldOrDirective, path)
                   else Success)
  -        selectionSet
  -        |> collectResults (fun selection ->
  -            let argsValid = validateArgs (sprintf "alias or field '%s'" selection.AliasOrName) selection.Path selection.Field.Arguments
  -            let directiveArgsValid = selection.Field.Directives |> collectResults (fun directive -> validateArgs (sprintf "directive '%s'" directive.Name) selection.Path directive.Arguments)
  -            let innerArgsValid = checkArgumentUniqueness selection.SelectionSet
  -            argsValid @@ directiveArgsValid @@ innerArgsValid)
  +        let argsValid = validateArgs (sprintf "alias or field '%s'" selection.AliasOrName) selection.Path selection.Field.Arguments
  +        let directiveArgsValid = selection.Field.Directives |> collectResults (fun directive -> validateArgs (sprintf "directive '%s'" directive.Name) selection.Path directive.Arguments)
  +        argsValid @@ directiveArgsValid
   
       let internal validateArgumentUniqueness (ctx : ValidationContext) =
  -        ctx.Definitions
  -        |> collectResults (fun def -> checkArgumentUniqueness def.SelectionSet)
  +        onAllSelections ctx validateArgumentUniquenessInSelection
   
       let private checkRequiredArguments (schemaInfo : SchemaInfo) (selection : SelectionInfo) =
           let inputsValid =
  
positive.code: 
      let rec private getFragmentAndParentTypes (set : SelectionInfo list) =
          ([], set)
          ||> List.fold(fun acc selection ->
              match selection.FragmentType with
              | Some fragType when fragType.Name <> selection.ParentType.Name -> (selection.Path, selection.ParentType, fragType) :: acc
              | _ -> acc)
  
negative.code:         fragmentTypeValid @@ (selection.SelectionSet |> collectResults checkFragmentOnCompositeType)
  
      let internal validateFragmentsOnCompositeTypes (ctx : ValidationContext) =
          onAllSelections ctx checkFragmentOnCompositeType
  
      let internal validateFragmentsMustBeUsed (ctx : ValidationContext) =
          let rec getSpreadNames (acc : Set<string>) =
  