matchAll e (a:as) (b:bs) = do match <- pMatch e a b
                              if match
                                 then matchAll e as bs
                                 else return False
matchAll e (a:as) (b:bs) = do match <- pMatch e a b
                              if match
                                 then matchAll e as bs
                                 else return False
matchAll e (a:as) (b:bs) = do match <- pMatch e a b
                              if match
                                 then matchAll e as bs
                                 else return False