anchor.diff:        Publisher : Simulant
         Subscriber : 's }
   
  -/// Describes a mean to publish an event.
  +/// Describes a means to publish an event.
   and PublishEvent<'a, 's, 'w when 's :> Simulant and 'w :> 'w Eventable> =
       Simulant -> 's -> 'a -> 'a Address -> string list -> obj -> 'w -> Handling * 'w
   
  
positive.code: and Subscription<'a, 's, 'w when 's :> Simulant and 'w :> 'w Eventable> =
      Event<'a, 's> -> 'w -> Handling * 'w
  
  /// Describes an event subscription that can be boxed / unboxed.
  and BoxableSubscription<'w when 'w :> 'w Eventable> =
      obj -> 'w -> Handling * 'w
  
  /// An entry in the subscription map.
  and SubscriptionEntry =
      Guid * Simulant * obj
  
  /// A map of event subscriptions.
  and SubscriptionEntries =
      Vmap<obj Address, SubscriptionEntry rQueue>
  
  /// Abstracts over a subscription sorting procedure.
  and SubscriptionSorter<'w when 'w :> 'w Eventable> =
      SubscriptionEntry rQueue -> 'w -> SubscriptionEntry rQueue
  
  /// A map of subscription keys to unsubscription data.
  and UnsubscriptionEntries =
      Vmap<Guid, obj Address * Simulant>
  
  /// A tasklet to be completed at the given time, with time being accounted for by the world
  
negative.code:     { Simulant : 's
        OldWorld : 'w }
  
  /// An event used by the event system.
  and [<ReferenceEquality>] Event<'a, 's when 's :> Simulant> =
      { Data : 'a
        Address : 'a Address
  