use core::rand::RngUtil;

fn main() {
    for ["Alice", "Bob", "Carol"].each |&name| {
        do spawn {
            let v = rand::Rng().shuffle([1, 2, 3]);
            for v.each |&num| {
                print(fmt!("%s says: '%d'\n", name, num + 1))
            }
        }
    }

    let _: i128 = -42i128;
    let _: u128 = 42u128;
}

/* nested /* 
    comments */ */

fn map<T, U>(vector: &[T], function: &fn(v: &T) -> U) -> ~[U] {
    let mut accumulator = ~[];
    for vec::each(vector) |element| {
        accumulator.push(function(element));
    }
    return accumulator;
}


// numbers
14E-111_f64; 45isize 0x1i32 0o777u32 0b01 14f32 1_2.78f32 1_2.3E+7f32

// not numbers
14._E-111_f64; 0xi32; 0b777u

// identifiers ending in constant.numeric
foo1; foo1u32; foo1f32; foo0xF; foo1.0


pub fn g<T>() -> std::mem::MaybeUninit<[T; 1 << 2]> {
    std::mem::MaybeUninit::uninit()
}

let multiline = r##"
    This is a raw string.
    r#"nested string"#
"##;
let empty = br##""##;
let _strings = [r"hello\", br"hello\", cr"hello\" ];