It looks good in your example. But see what is the result:
```java
        return Iterables.concat(
            Iterables.transform(
                this.allTypes(),
                new Function<Class<?>, Iterable<Method>>() {
                    @Override
                    public Iterable<Method> apply(final Class<?> input) {
                        return Iterables.filter(
                            Arrays.asList(input.getDeclaredMethods()),
                            new Predicate<Method>() {
                                @Override
                                public boolean apply(final Method method) {
                                    return Modifier.isPublic(
                                        method.getModifiers()
                                    );
                                }
                            }
                        );
                    }
                }
            )
        );
```