module ListDiff where import Debug.QuickCheck sublist :: Eq a => [a] -> [a] -> Bool sublist [] _ = True sublist _ [] = False sublist (x:xs) (y:ys) | x==y = sublist xs ys | otherwise = sublist (x:xs) ys sublist1 [] _ = True sublist1 _ [] = False sublist1 (x:xs) (y:ys) | x==y && xs == take (length xs) ys = True | otherwise = sublist1 (x:xs) ys sublist2 l1 l2 = all (`elem` l2) l1 sublist3 l1 l2 = all (`elem` l1) l2