title: Why can't websockets with iteratees supply separate types for the input frames and output frames?
body: <p>According to the play docs <a href="https://www.playframework.com/documentation/2.4.x/ScalaWebSockets#Handling-different-types-of-messages" rel="nofollow">on WebSockets</a>, you can use different types for input frames and output frames provided you supply a FrameFormatter for each type. This makes sense. </p>
  
  <p>However, on the <a href="https://www.playframework.com/documentation/2.4.x/api/scala/index.html#play.api.mvc.WebSocket$" rel="nofollow">WebSocket object</a> all the factory methods that deal with Iteratees take a single type parameter <code>[A]</code> whereas the methods implemented with Actors take two type parameters <code>[In, Out]</code>. I don't see why it wouldn't be just as useful to use separate types for input and output with iteratees as with Actors. </p>