split x (u:v:ts)  =   if x `max` fst u < fst v then u:v:ts
                      else split x (fork u v : ts)
split x (u:v:ts)  =   if x `max` fst u < fst v then u:v:ts
                      else split x (fork u v : ts)
split x (u:v:ts)  =   if x `max` fst u < fst v then u:v:ts
                      else split x (fork u v : ts)