let select (l:'a list) (fieldlist:int list) = 
 let a = Array.of_list l in
 let rec loop a = function 
 | []    -> []
 | f::fl -> (Array.get a f)::(loop a fl)
 in loop a fieldlist