I'm guessing this should be caught earlier in the compiler.
fn main() {
fn echo[T](chan[T] c, chan[chan[T]] oc) {
let port[T] p = port();
oc <| chan(p);
auto x;
p |> x;
c <| x;
}
auto p = port[int]();
auto p2 = port[chan[int]]();
spawn echo(chan(p), chan(p2));
}