Full type annotations support for Java 8