anchor.diff:          else failwith "character placement failed; coordinates unavailable"
   
       static member addCharacter index coordinates (chessboard : Chessboard) =
  +    //    let chessboard = Chessboard.updateByCoordinates coordinates (FieldSpace.addCharacter index) chessboard
           Chessboard.placeCharacter index coordinates chessboard
   
  -    static member relocateCharacter index coordinates (chessboard : Chessboard) =
  -        Chessboard.placeCharacter index coordinates chessboard
  -    
       static member removeCharacter index _ chessboard =
  +    //    let coordinates = Chessboard.getCharacterCoordinates index chessboard
  +    //    let chessboard = Chessboard.updateByCoordinates coordinates FieldSpace.removeCharacter chessboard
           let characterCoordinates = Map.remove index chessboard.CharacterCoordinates
           Chessboard.updateCharacterCoordinates (constant characterCoordinates) chessboard
       
  +    static member relocateCharacter index coordinates (chessboard : Chessboard) =
  +    //    let oldCoordinates = Chessboard.getCharacterCoordinates index chessboard
  +    //    let chessboard = Chessboard.updateByCoordinates oldCoordinates FieldSpace.removeCharacter chessboard
  +    //    let chessboard = Chessboard.updateByCoordinates coordinates (FieldSpace.addCharacter index) chessboard
  +        Chessboard.placeCharacter index coordinates chessboard
  +    
       static member clearEnemies _ _ (chessboard : Chessboard) =
  +    //    let chessboard = Chessboard.updateByPredicate FieldSpace.containsEnemy FieldSpace.removeCharacter chessboard
           Chessboard.updateCharacterCoordinates (constant chessboard.PlayerCoordinates) chessboard
       
       static member addMove index move chessboard =
  
positive.code:     
      static member clearPickups _ _ chessboard =
          Chessboard.updateByPredicate FieldSpace.containsPickup FieldSpace.removePickup chessboard
      
      // used for both adding and relocating
      static member placeCharacter index coordinates (chessboard : Chessboard) =
  
negative.code:     member this.ContainsCharacter =
          match this.CharacterOpt with Some _ -> true | None -> false
  
      static member containsEnemy fieldSpace =
          match fieldSpace.CharacterOpt with
          | None -> false // more efficient order
          | Some i -> i.IsEnemy
      
      static member containsSpecifiedCharacter index fieldSpace =
          match fieldSpace.CharacterOpt with
          | None -> false // more efficient order
          | Some i -> i = index
  
      member this.ContainsPickup =
          match this.PickupItemOpt with Some _ -> true | None -> false
      
  