RecvChannel = "<-" "chan" ElementType .
</pre>
+<p>
+To avoid a parsing ambiguity in cases such as <code>chan<- chan int</code>,
+the Channel production's ElementType cannot be a RecvChannel.
+To construct such a type, parenthesize the RecvChannel first.
+</p>
+
+<pre>
+chan<- chan int // same as chan<- (chan int)
+chan<- <-chan int // same as chan<- (<-chan int)
+<-chan <-chan int // same as <-chan (<-chan int)
+chan (<-chan int)
+</pre>
+
<p>
Upon creation, a channel can be used both to send and to receive values.
By conversion or assignment, a channel may be constrained only to send or
which takes the channel type and an optional capacity as arguments:
</p>
-
<pre>
make(chan int, 100)
</pre>