fact: Definition flatten_prep (A B : Set)(ls : list (A * (list B))) : list (list (nat * nat * A * B)) := map (fun p => [a, lsb] <-2 p; map (fun p' => [i, b] <-2 p'; (i, length lsb, a, b)) (zip (allNatsLt (length lsb)) lsb)) ls.
imports: FCF.FCF