pMatch e (PCons a as) (AValue b bs _) | a == b = matchAll e as bs
                                      | otherwise = return False
pMatch e (PCons a as) (AValue b bs _) | a == b = matchAll e as bs
                                      | otherwise = return False
pMatch e (PCons a as) (AValue b bs _) | a == b = matchAll e as bs
                                      | otherwise = return False