-author('mats cronqvist').
-record(demo,{a="One",b="Two",c="Three",d="Four"}).
rec_info(demo) -> record_info(fields,demo).
demo() -> expand_recs(?MODULE,#demo{a="A",b="BB"}).
expand_recs(M,List) when is_list(List) ->
[expand_recs(M,L)||L<-List];
expand_recs(M,Tup) when is_tuple(Tup) ->
Fields = M:rec_info(element(1,Tup)),
lists:zip(Fields,expand_recs(M,tl(tuple_to_list(Tup))))
_:_ -> list_to_tuple(expand_recs(M,tuple_to_list(Tup)))