extern crate quickcheck; use quickcheck::quickcheck; fn reverse(xs: &[T]) -> Vec { let mut rev = vec!(); for x in xs { rev.insert(0, x.clone()) } rev } fn main() { fn equality_after_applying_twice(xs: Vec) -> bool { xs == reverse(&reverse(&xs)) } quickcheck(equality_after_applying_twice as fn(Vec) -> bool); }