But are you relying on what-the-implementation-happened-to-do for the singleton type? I think if it were explicitly given a singleton type it would keep it, else everything else wouldn't work.