The IO capability was originally introduced to make signatures more "truthful". It requires any methods that perform I/O directly or indirectly to include IO in scope.
However, after testing this in Bootzooka, I'm not sure it carries its weight. True, the project is small, but even there the necessity to often add using IO was more annoying, than useful. All the places where this was needed where predictable, and it's usually obvious from the method name that I/O is happening anyway.
That's why I propose to remove the feature (along with the compiler plugin) from Ox entirely. Similar functionality might be implemented by a separate project, without the integration e.g. with Ox's streams.
The
IOcapability was originally introduced to make signatures more "truthful". It requires any methods that perform I/O directly or indirectly to includeIOin scope.However, after testing this in Bootzooka, I'm not sure it carries its weight. True, the project is small, but even there the necessity to often add
using IOwas more annoying, than useful. All the places where this was needed where predictable, and it's usually obvious from the method name that I/O is happening anyway.That's why I propose to remove the feature (along with the compiler plugin) from Ox entirely. Similar functionality might be implemented by a separate project, without the integration e.g. with Ox's streams.