Add effect kind and move effects into type system.
Solve effect constraints by unification.
Replace fat arrow with '+ effect' notation.

Also separate little words from operators.
Allow polymorphism over effects.
Prefer trailing comma to prefix comma.