Graph<Instruction> (final Instruction @NotNull [] flow) { return new Graph<Instruction>() { private final @NotNull List<Instruction> myList = Arrays.asList(flow); @Override public @NotNull Collection<Instruction> getNodes() { return myList; } @Override public @NotNull Iterator<Instruction> getIn(Instruction n) { return n.allPred().iterator(); } @Override public @NotNull Iterator<Instruction> getOut(Instruction n) { return n.allSucc().iterator(); } }; }