Change return type based on value of parameters - Theo's Typesafe Cult