While it would be inefficient in the web SAPI where you'd essentially be running `stream_get_contents(fopen('php://input', 'r'));` to convert the entity to a string I'm talking specifically about the CLI. If you're going to allow any native types at all I don't see much benefit to excluding strings as that's how everyone naturally thinks of entity bodies.

Besides, this is about modelling HTTP messages, right? For the average user I would expect it to be a real WTF if you couldn't do this:

```
$response->setBody('Hello, world!');
```

This is what I mean when I say I believe requiring a `StreamInterface` for the entity body to be an implementation detail. Consumers of an API don't care how the internal properties behind the black box are shuffled around. They only care that things work as expected externally. Enforcing `StreamInterface` body means you're requiring knowledge of how the `Message` works internally in order to use it. It's a design decision that I will never agree with.

We might just have to leave it at that and not have hard feelings about it. I won't ever implement the standard if it requires the custom userland interface for modeling entites, and that's okay :)