Polytypic functional programming and data abstraction. - Pablo Nogueira Iglesias (2005)