The changes are as follows:
+ `print` is for putting showable things to STDOUT.
+ `printLn` is for putting showable things to STDOUT with a new line
+ `putCharLn` for putting a single character to STDOUT, with a new line.
Effects has been updated accordingly.
They can be imported from the modules Data.Fin, Data.Vect, and Data.So
respectively.
The general thinking here is that not every program is going to need
these, and they are often used especially by newcomers in place of
something more appropriate. Also, all of them are useful for teaching,
which means it is instructive for tutorials to introduce them and have
people implement them themselves.
Two reasons:
1. The most important: it makes error messages *so much better* :).
Because "effect'" rarely properly fails due to having a very generic
type, so any error arises later and breaks the real error which came
from lift'
2. It is much easier to explain what's going on when documenting
effects!
Apologies for breaking effectful code: I now think it is much better
this way though.