Move return to applicative and refactor return coercion

Fix local