/// <summary> /// Flatten /// </summary> /// <param name="optional"></param> /// <typeparam name="T"></typeparam> /// <typeparam name="TException"></typeparam> /// <typeparam name="TImpl"></typeparam> /// <returns></returns> public static Either <T, TException> Flatten <T, TException, TImpl>(this IOptionalImpl <Either <T, TException>, TException, TImpl> optional) => optional.FlatMap(innerOptional => innerOptional);
/// <summary> /// Flatten /// </summary> /// <param name="optional"></param> /// <typeparam name="T"></typeparam> /// <typeparam name="TImpl"></typeparam> /// <returns></returns> public static Maybe <T> Flatten <T, TImpl>(this IOptionalImpl <Maybe <T>, TImpl> optional) => optional.FlatMap(innerOptional => innerOptional);