anchor.diff:          static member acatf<'a> (address : 'a Address) (layer : Layer) = acatf address (atooa layer.LayerAddress)
           
           /// Concatenate two addresses, forcing the type of first address.
  -        static member acatff<'a> (address : 'a Address) (layer : Entity) = acatff address layer.EntityAddress
  +        static member acatff<'a> (address : 'a Address) (layer : Layer) = acatff address layer.LayerAddress
       
           /// Convert a layer's proxy to its screen's.
           static member (!<) layer = Screen.proxy ^ Address.allButLast layer.LayerAddress
  
positive.code:     /// to implement things like buttons, characters, blocks, and things of that sort.
      /// OPTIMIZATION: Includes pre-constructed entity change and update event addresses to avoid
      /// reconstructing new ones for each entity every frame.
      and [<StructuralEquality; NoComparison>] Entity =
          { EntityAddress : Entity Address
            UpdateAddress : unit Address
            PostUpdateAddress : unit Address
  
negative.code:             end
      
      /// The game type that hosts the various screens used to navigate through a game.
      and [<CustomEquality; NoComparison>] Game =
          { GameAddress : Game Address }
      
          interface Simulant with
              member this.ParticipantAddress = atoa<Game, Participant> this.GameAddress
              member this.SimulantAddress = atoa<Game, Simulant> this.GameAddress
              end
  
          override this.Equals that =
              match that with
              | :? Game as that -> this.GameAddress == that.GameAddress
              | _ -> failwithumf ()
  
          override this.GetHashCode () = this.GameAddress.GetHashCode ()
  
          override this.ToString () = scstring this.GameAddress
      
          /// Get the latest value of a game's properties.
  