anchor.diff:  type [<ReferenceEquality; NoComparison>] Chessboard =
       { FieldSpaces : Map<Vector2i, FieldSpace> }
   
  -    // NOTE: the following subset data can be optimized on demand by converting them from filters to storage caches, without interfering with the interface.
  +    // TODO: get rid of FieldSpace |> properly handle None cases |> convert any remaining heavy properties to functions.
       
       member this.CharacterSpaces =
  -        Map.filter (fun _ (v : FieldSpace) -> v.ContainsCharacter) this.FieldSpaces
  +        Map.filter (constant FieldSpace.containsCharacter) this.FieldSpaces
       
       member this.EnemySpaces =
  -        Map.filter (fun _ (v : FieldSpace) -> v.ContainsEnemy) this.FieldSpaces
  +        Map.filter (constant FieldSpace.containsEnemy) this.FieldSpaces
   
       member this.PropSpaces =
  -        Map.filter (fun _ (v : FieldSpace) -> v.ContainsProp) this.FieldSpaces
  +        Map.filter (constant FieldSpace.containsProp) this.FieldSpaces
       
       member this.PickupSpaces =
  -        Map.filter (fun _ (v : FieldSpace) -> v.ContainsPickup) this.FieldSpaces
  +        Map.filter (constant FieldSpace.containsPickup) this.FieldSpaces
   
       member this.OccupiedSpaces =
  -        Map.filter (fun _ (v : FieldSpace) -> v.IsOccupied) this.FieldSpaces |> Map.toKeyList
  +        Map.filter (constant FieldSpace.isOccupied) this.FieldSpaces |> Map.toKeyList
       
       member this.UnoccupiedSpaces =
  -        Map.filter (fun _ (v : FieldSpace) -> not v.IsOccupied) this.FieldSpaces |> Map.toKeyList
  +        Map.filter (constant FieldSpace.isUnoccupied) this.FieldSpaces |> Map.toKeyList
   
       member this.OpenDirections coordinates =
           List.filter (fun d -> List.exists (fun x -> x = (coordinates + (dtovc d))) this.UnoccupiedSpaces) [Upward; Rightward; Downward; Leftward]
   
       member this.Characters =
  -        Map.map (fun _ (v : FieldSpace) -> v.GetCharacter) this.CharacterSpaces
  +        Map.map (constant FieldSpace.getCharacter) this.CharacterSpaces
   
       member this.EnemyIndices =
  -        Map.toListBy (fun _ (v : FieldSpace) -> v.GetCharacterIndex) this.EnemySpaces
  +        Map.toListBy (constant FieldSpace.getCharacterIndex) this.EnemySpaces
       
       member this.Pickups =
  -        Map.map (fun _ (v : FieldSpace) -> v.GetPickup) this.PickupSpaces
  +        Map.map (constant FieldSpace.getPickup) this.PickupSpaces
       
       member this.EnemyCount =
           this.EnemySpaces.Count
  
positive.code:         Chessboard.getCharacterAtCoordinates coordinates chessboard
      
      static member tryGetOccupantAtCoordinates coordinates chessboard =
          chessboard.FieldSpaces.[coordinates].TryGetOccupant
      
      static member getPickup coordinates chessboard =
          chessboard.FieldSpaces.[coordinates].GetPickup
  
negative.code:         Map.exists (fun _ v -> FieldSpace.containsSpecifiedCharacter index v) chessboard.FieldSpaces
      
      static member enemyAtCoordinates coordinates chessboard =
          FieldSpace.containsEnemy chessboard.FieldSpaces.[coordinates]
      
      static member pickupAtCoordinates coordinates chessboard =
          chessboard.FieldSpaces.[coordinates].ContainsPickup
  