sclass WithAutoCloseable<A> implements AutoCloseable {
  AutoCloseable autoCloseable;
  A value;
  
  *() {}
  *(AutoCloseable *autoCloseable, A *value) {}
  
  A get() { ret value; }
  
  public void close {
    closeAutoCloseable(autoCloseable);
    autoCloseable = null;
  }
}