    //--------------------------------------------------------------
    // M-2
    for name in &names {
        println!("{}", name);
    }

    //--------------------------------------------------------------
    // M-3
    // If this line doesn't exist, then it throws error like 'can't be used' as already used before in `for-range`
    let names: Vec<&str> = vec!["Abhi", "Sam", "McLaren", "Gary"];
    let mut iterator = (&names).into_iter();
    
    while let Some(name) = iterator.next() {
        println!("{}", name);
    }