simon.vergauwen
fun <F, A> calculate(cart: ShoppingCart): Kleisli<A, Kind<F, A>, ShoppingCart> = calculateDiscount<F, A>(cart).flatMap(::calculateErrors)