   }
 
   /// The stored `Value` instance.
+  ///
+  /// Note: this value must not be accessed during instance creation.
   public final var value: Value {
     get {
       return withUnsafeMutablePointerToValue {

    return Int(bitPattern: malloc_size(unsafeAddressOf(self)))
  }
  
  /// The actual number of elements allocated for this object.  May be
  /// nontrivial to compute; it may be a good idea to store this
  /// information in the value area upon creation.
  public final var allocatedElementCount : Int {
    return (
      _allocatedByteCount &- ManagedBuffer._elementOffset &+ sizeof(Element) &- 1

/// any live elements in the `deinit` of a subclass.  Note: subclasses
/// must not have any stored properties; any storage needed should be
/// included in `Value`.
public class ManagedBuffer<Value, Element> : ManagedBufferBase {
  
  /// Create a new instance of the most-derived class, calling
  /// `initialize` on the partially-constructed object to generate an
  /// initial `Value`.
  ///
  /// Note, in particular, accessing `value` inside the `initialize`
  /// function is undefined.
  public final class func create(
    minimumCapacity: Int, initialize: (ManagedBuffer)->Value
  ) -> ManagedBuffer {
