     if thingyverse._.per_thingy[ id ]?
       throw( "Heron.Thingy: Thingy #{id} already exists." )
 
+    after_construction_functions = []
+
     @_ =
       thingyverse: thingyverse
       typename:    typename

        if @_.removed
          throw( "Heron.Thingy: Trying to do something with removed thingy #{@id()}" )

    @_.delegate = @_.type_data.initializer.call( this, attrs, local_data )

    thingyverse._.per_thingy[ id ] =
      thingy:   this
      delegate: @_.delegate

  # ID.
  # @return [String] ID.

  #
  # All of the above occurs in a batch.
  #
  # @param [String] typename   Name of a Thingy type as defined by {#define}.
  # @param [Object] attrs      Initial attributes.
  # @param [Object] local_data Local data.
  # @return [thingy] Newly created thingy.
