generate(list(Options),Value) :-
is_list(Options) ,
generate(ground_type,Type) ,
generate(list(Type,Options),Value).
generate(list(Type),Value) :-
generate(list(Type,[]),Value).
generate(list(_,Options),[]) :-
member(size:0,Options).
generate(list(Type,Options),Value) :-
(member(size:Size,Options)
-> Size > 0
; random(1,50,Size)) ,
length(Value,Size) ,
maplist(generate(Type),Value).