Support for new JDK8-specific types, such as Optional