anchor.diff:  open System.Threading.Tasks
   open Prime
   
  -// TODO: 3D: make sure to use TryAdd in the appropriate places.
  -// TODO: 3D: create try functions where applicable and do error-checking where not.
  +// TODO: 3D: create try functions where applicable and do error-checking where not (search for '.[').
   
   /// Allows a value to always pass as equal with another of its same type.
   type [<CustomEquality; NoComparison; Struct>] 'a AlwaysEqual =
  
positive.code: 
      member this.AddTerm termName term =
          let terms = Dictionary (terms, StringComparer.Ordinal)
          terms.Add (termName, term)
          ArchetypeId terms
  
      member this.RemoveTerm termName =
  
negative.code:             | Extra (name, ty, _) ->
                  let storeType = storeTypeGeneric.MakeGenericType [|ty|]
                  let store = Activator.CreateInstance (storeType, name) :?> Store
                  stores.[name] <- store
              | _ -> ()
  
      member this.Id = archetypeId
  