add monadfail and monadtrans for writer
four evaluators