pub fn chan<T>(len: Option<usize>) -> (Sender<T>, Receiver<T>)