anchor.diff:      let notEmpty (segment : Segment) =
           int segment <> 0
   
  -type SpecialSegmentType =
  +type SpecialSegment =
       | NarrativeSegment
       | BossSegment
   
  
positive.code:                             map.MapSegments.[dec i].[j] |> Segment.isEmpty then
                              map.MapSegments.[i].[j] <- map.MapSegments.[i].[j] ||| Segment.Segment1N
                              map.MapSegments.[dec i].[j] <-
                                  match specialSegmentType with
                                  | NarrativeSegment -> Segment.SegmentNS
                                  | BossSegment -> Segment.SegmentBS
                              bossRoomAdded <- true
          bossRoomAdded
  
      static member tryAddSpecialRoomNorthFromSouthWest specialSegmentType map =
          let mutable bossRoomAdded = false
          for i in 7 - 1 .. - 1 .. 0 do // starting from the south row
              if not bossRoomAdded then
  
negative.code:                             map.MapSegments.[inc i].[j] |> Segment.isEmpty then
                              map.MapSegments.[i].[j] <- map.MapSegments.[i].[j] ||| Segment.Segment1S
                              map.MapSegments.[inc i].[j] <-
                                  match specialSegment with
                                  | NarrativeSegment -> Segment.SegmentNN
                                  | BossSegment -> Segment.SegmentBN
                              bossRoomAdded <- true
          bossRoomAdded
  
      static member tryAddSpecialRoomFromNorthSouthEast specialSegment map =
          let mutable bossRoomAdded = false
          for i in 7 - 1 .. - 1 .. 0 do // starting from the south row
              if not bossRoomAdded then
  