import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
import io.rouz.task.dsl.TaskBuilder;
<BUG>import io.rouz.task.dsl.TaskBuilder.F0;
@AutoValue</BUG>
public abstract class Task<T> implements Serializable {
<BUG>public abstract TaskId id();
abstract EvalClosure<T> code();</BUG>
abstract F0<List<Task<?>>> lazyInputs();

import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
import io.rouz.task.dsl.TaskBuilder;
import io.rouz.task.dsl.TaskBuilder.F0;
import io.rouz.task.dsl.TaskBuilderSeed;
@AutoValue
public abstract class Task<T> implements Serializable {
public abstract TaskId id();
public abstract Class<T> type();
abstract EvalClosure<T> code();
abstract F0<List<Task<?>>> lazyInputs();
