Seán Kelleher - Phantom Types
Details
Programmers using statically-typed languages are typically accustomed to types, and are generally of the mindset that a given value belongs to one obvious type, disregarding type aliases such as "byte" and "uint8". However, we can embellish the type of a value with information not present in the value itself in order to further refine the precision of the type system. For instance, any two integers may be added, but if they are taken from two different numbering systems (e.g. metric and imperial) then the result doesn't make sense. By adding such distinctions at the type-level then we can prevent such wasteful computations before they are executed. Phantom types add type information to values which is not necessarily inherent in the value itself.
Seán Kelleher is a CS graduate from UCC. He has worked at Pilz, Microsoft and Teamwork.com and has since joined IGNITE to try to develop his own business around automated testing tools for developers. He highly values simplicity, and feels that the principles he has learned from functional programming allow him to think about programming in its simplest terms.
