can't wait for 87 to drop so I can lose the first ...
# arrow
j
can't wait for 87 to drop so I can lose the first 3 params
Copy code
/* calculate :: MonadThrow A => HasRepositories F => HasWarehouseService F => 
                ShoppingCart -> Kleisli A (F a) ShoppingCart */
fun <F, A> calculate(
    AMT: MonadThrow<A>,
    FHR: HasRepositories<F>,
    FHW: HasWarehouseService<F>,
    cart: ShoppingCart
): Kleisli<A, Kind<F, A>, ShoppingCart> {
    return calculateDiscount<F, A>(FHR, cart).flatMap(AMT) { cart -> calculateErrors<F, A>(FHW, cart) }
}
1