12 Aug
                
                    2008
                
            
            
                12 Aug
                
                '08
                
            
            
            
        
    
                9:07 p.m.
            
        2008/8/12 Leif Warner 
I know in a language like Java or C++ I might do some sort of run-time type identification, which would detect the type of each element in the list, and output it appropriately.
I think I've missed a step. Why do you want to break the fields of an Invoice out into a list in the first place?