Whiteoak: introducing structural typing into java. - Gil, Joseph; Maman, Itay (2008)