package werti.util; import java.util.LinkedList; import java.util.List; public class Transformer { public static List applyRules(A a, List> rules) { List items = new LinkedList(); items.add(a); //initial seed for (final Transformation r:rules) { for (A i:items) { items.addAll(r.apply(i)); } } return items; } }