2 works on record
Data structures & other objects using Java
Mathematical Foundations of Programming Language Semantics