Hi,

Possibly a silly question but is it possible to have a function that has a different return type based on it's first argument?

For instance

data Person = Person { name :: String, ... }
data Business = Business { business_number :: Int, ...}

key person = name person
key business = business_number business

Thanks

-John