fun zip ([],_) = [] | zip (_,[]) = [] | zip (e1::e1s,e2::e2s) = (e1, e2) :: zip (e1s, e2s);