ChasmDelete


deleteCO() is called to delete concepts. Concepts which have a CIF of CREATED will be deleted when the concept they were created in is deleted. Other concepts will be deleted whenever you tell them to with deleteCO.

But...

An interesting case exists which goes against the ideals of Chasm. Because a higher level concept is supposed to unconcerned about how lower level concepts manage their affairs, then when a concept is deleted yet it still is used by another, higher level concept, it will screw up the higher level concept. Because of this, we use the deleteCO operator as opposed to delete. The deleteCO operator checks that the concept is not used by another concept when it is asked to delete. If it is not used, it deletes itself making sure that all events on it which could have occurred have been passed. If it is used, then it waits for that concept to delete before deleting itself.

For more about this, see here.