no more extensible effects, abstract over transformers instead