For relational programming I need an ability to join collections (relations) of tuples. Very simplified version of what I need looks like:
Rel.join [(1; "James")] [(1; 34)] (* returns: [(1; "James"; 34)] *)
How can I do this without knowing actual types of tuples? Code generation seems like not an option cause I need to generate new relations (list/sets/arrays/… of tuples) in runtime. It looks like impossible to get such dynamism in pure functional OCaml, doesn’t it?