unzipFM :: Ord k => [(k,(u,v))] -> (Map k u, Map k v)
unzipFM l = (M.fromList mu, M.fromList mv)
    where (mu, mv) = unzip [((k,u),(k,v)) | (k,(u,v)) <- l]
unzipFM :: Ord k => [(k,(u,v))] -> (Map k u, Map k v)
unzipFM l = (M.fromList mu, M.fromList mv)
    where (mu, mv) = unzip [((k,u),(k,v)) | (k,(u,v)) <- l]
unzipFM l = (M.fromList mu, M.fromList mv)
    where (mu, mv) = unzip [((k,u),(k,v)) | (k,(u,v)) <- l]