On further thought, I don't see the purpose of this class, it's not functionally different than a TimeFunction. In general I'd shy away create interfaces with a call() method, but there should be no reason to have an interface with just a call() method. If a class can't implement a typedef (I have to check) then that should be changed in the language.