macro_rules! receive_value_from {
    ( $chan:expr,
    $var:ident => $body:expr
  ) => { ... };
    ( $chan:expr,
    ($var:ident $( : $type:ty )?) => $body:expr
  ) => { ... };
}