On Sun, Oct 2, 2011 at 6:04 AM, Du Xi <sdiyazg@sjtu.edu.cn> wrote:
--Is it possible to get around this and write the "expand" function? Of course, x and y may be of different types

Not as written, but try HList. 
http://hackage.haskell.org/package/HList