Type a function based on its argument value. - Theo's Typesafe Cult