Don't all variables have to have concrete types?  How is this not good enough.  I think I am not understanding something here.  Since this is Geoff's code, maybe he can take this.