codensity transformer based effect monad

closes #13