class Chain implements Iterable<T> {

    @Override
    public int hashCode() {
        return id.hashCode();
    }

    @SafeVarargs public  Chain(String id, T... components);
    public  Chain(String id, List<? extends T> components);

}