A type-level approach to component prototyping - Barbosa, L. S. (2007)