propReplaceElementInList :: [Int] -> Int -> [Int] -> Property
propReplaceElementInList xs j as = (not . null) xs && nub xs == xs ==> replaceElementInList (xs!!i) as xs == replaceInList i as xs where
    i = abs j `mod` length xs

-- | ensure that the length of the list stays the same
propReplaceElementInList :: [Int] -> Int -> [Int] -> Property
propReplaceElementInList xs j as = (not . null) xs && nub xs == xs ==> replaceElementInList (xs!!i) as xs == replaceInList i as xs where
    i = abs j `mod` length xs

-- | ensure that the length of the list stays the same
propReplaceElementInList xs j as = (not . null) xs && nub xs == xs ==> replaceElementInList (xs!!i) as xs == replaceInList i as xs where
    i = abs j `mod` length xs

-- | ensure that the length of the list stays the same