propTakeWhileList :: Int -> Int -> [Int] -> Property
propTakeWhileList i j xs = (0 /= i && j < i) ==> takeWhile p xs == takeWhileList (p . last) xs where
    p x = x `mod` i == j

-- | @takeWhile (not . p) = init . takeToFirst $ p@ (apart from special cases)
propTakeWhileList :: Int -> Int -> [Int] -> Property
propTakeWhileList i j xs = (0 /= i && j < i) ==> takeWhile p xs == takeWhileList (p . last) xs where
    p x = x `mod` i == j

-- | @takeWhile (not . p) = init . takeToFirst $ p@ (apart from special cases)
propTakeWhileList i j xs = (0 /= i && j < i) ==> takeWhile p xs == takeWhileList (p . last) xs where
    p x = x `mod` i == j

-- | @takeWhile (not . p) = init . takeToFirst $ p@ (apart from special cases)