-- take the elements one by one from each list starting with the first and return them in one new list (zipping two lists together)
weave :: [a] -> [a] -> [a]
weave [] [] = []
weave [a][] = [a]
weave [][c] = [c]
weave [a][c] = [a,c]
weave [a,b][] = [a,b]
weave [][c,d] = [c,d]
weave [a,b][c] = [a,c,b]
weave [a][c,d] = [a,c,d]
weave [a,b][c,d] = [a,c,b,d]