Java Has Type Inference and Refinement Types (But With Strange Restrictions)
james-iry.blogspot.com