package org.realityforge.arez.api2;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class Derivation
  extends Reaction
{
  Derivation( @Nonnull final ArezContext context, @Nullable final String name )
  {
    super( context, name );
  }

  /**
   * Passivate the derivation.
   * The derivation will no longer generate new observable values and dependencies are released.
   */
  protected void passivate()
  {
    Guards.invariant( this::isActive,
                      () -> String.format( "Invoked passivate on derivation named '%s' when derivation is not active.",
                                           getName() ) );
    setState( ObserverState.INACTIVE );
  }
}

@@ -220,16 +220,53 @@
 ing name
+, @Nonnull final TransactionMode mode
  )%0A  %7B%0A 
@@ -288,16 +288,22 @@
 xt, name
+, mode
  );%0A  %7D%0A

Fix the constructor