@@ -247,14 +247,19 @@ interface Simple<S, A> extends Iso<S, S, A, A>, LensLike.Simple<S, A, Iso> {
247247
248248 @ Override
249249 default Iso .Simple <A , S > mirror () {
250- return Iso . Simple . adapt (Iso .super .mirror ());
250+ return adapt (Iso .super .mirror ());
251251 }
252252
253253 @ Override
254254 default Lens .Simple <S , A > toLens () {
255255 return Lens .Simple .adapt (Iso .super .toLens ());
256256 }
257257
258+ @ Override
259+ default <U > Iso .Simple <S , A > discardR (Applicative <U , LensLike <S , ?, A , A , Iso >> appB ) {
260+ return adapt (Iso .super .discardR (appB ));
261+ }
262+
258263 /**
259264 * Compose two simple isos from right to left.
260265 *
@@ -263,7 +268,7 @@ default Lens.Simple<S, A> toLens() {
263268 * @return the composed simple iso
264269 */
265270 default <R > Iso .Simple <R , A > compose (Iso .Simple <R , S > g ) {
266- return g . andThen ( this );
271+ return Iso . Simple . adapt ( Iso . super . compose ( g ) );
267272 }
268273
269274 /**
@@ -274,7 +279,7 @@ default <R> Iso.Simple<R, A> compose(Iso.Simple<R, S> g) {
274279 * @return the composed simple iso
275280 */
276281 default <B > Iso .Simple <S , B > andThen (Iso .Simple <A , B > f ) {
277- return Iso . Simple . adapt (f .compose (this ));
282+ return adapt (f .compose (this ));
278283 }
279284
280285 /**
0 commit comments