@@ -0,0 +1,570 @@
+package org.realityforge.arez;%0A%0A/**%0A * Interface that allows caller to release any resources associated with element.%0A * It is safe to invoke %7B@link #dispose()%7D multiple times on a element. Dispose%0A * is considered a state modifying action and must be called either within an%0A * action where mutation is true or else it will start it's own transaction before%0A * performing dispose. Once an element is disposed, no other methods should be invoked%0A * on element.%0A */%0A@FunctionalInterface%0Apublic interface Disposable%0A%7B%0A  /**%0A   * Dispose element.%0A   */%0A  void dispose();%0A%7D%0A

Add Disposable interface