Я бы сгладил внешний уровень списка (путем объединения списков второго уровня), а затем преобразовал бы внутренние списки в кортежи, используя map
:
let transform lst =
lst
|> List.concat
|> List.map (function
| [a; b] -> (a, b)
| _ -> failwith "Incorrect list syntax")