i have a type mismatch error can you please help me fix this code type Customer = { Id: int IsVip: bool Credit: decimal } let getPurchases (customer: Customer) = if customer.Id % 2 = 0 then 120.0M else 80.0M let tryPromoteToVip (customer: Customer) = if getPurchases customer > 100.0M then { customer with IsVip = true } else customer let increaseCreditIfVip (customer: Customer) = if customer.IsVip then { customer with Credit = customer.Credit + 100.0M } else { customer with Credit = customer.Credit + 50.0M } let upgradeCustomerProcedural customer = let purchases = getPurchases customer let customer2 = tryPromoteToVip customer increaseCreditIfVip customer2 let upgradeCustomerNested customer = increaseCreditIfVip (tryPromoteToVip (customer |> getPurchases)) let upgradeCustomerComposed = getPurchases >> tryPromoteToVip >> increaseCreditIfVip let upgradeCustomerPiped customer = customer |> tryPromoteToVip |> increaseCreditIfVip |> getPurchases let customerVIP = { Id = 1; IsVip = true; Credit = 0.0M } let customerSTD = { Id = 2; IsVip = false; Credit = 100.0M } let assertVIP = upgradeCustomerComposed customerVIP = { Id = 1; IsVip = true; Credit = 100.0M } let assertSTDtoVIP = upgradeCustomerComposed customerSTD = { Id = 2; IsVip = true; Credit = 200.0M } let assertSTD = upgradeCustomerComposed { customerSTD with Id = 3; Credit = 50.0M } = { Id = 3; IsVip = false; Credit = 100.0M }.
i have a type mismatch error can you please help me fix this code type Customer = { Id: int IsVip: bool Credit: decimal } let getPurchases (customer: Customer) = if customer.Id % 2 = 0 then 120.0M else 80.0M let tryPromoteToVip (customer: Customer) = if getPurchases customer > 100.0M then { customer with IsVip = true } else customer let increaseCreditIfVip (customer: Customer) = if customer.IsVip then { customer with Credit = customer.Credit + 100.0M } else { customer with Credit = customer.Credit + 50.0M } let upgradeCustomerProcedural customer = let purchases = getPurchases customer let customer2 = tryPromoteToVip customer increaseCreditIfVip customer2 let upgradeCustomerNested customer = increaseCreditIfVip (tryPromoteToVip (customer |> getPurchases)) let upgradeCustomerComposed = getPurchases >> tryPromoteToVip >> increaseCreditIfVip let upgradeCustomerPiped customer = customer |> tryPromoteToVip |> increaseCreditIfVip |> getPurchases let customerVIP = { Id = 1; IsVip = true; Credit = 0.0M } let customerSTD = { Id = 2; IsVip = false; Credit = 100.0M } let assertVIP = upgradeCustomerComposed customerVIP = { Id = 1; IsVip = true; Credit = 100.0M } let assertSTDtoVIP = upgradeCustomerComposed customerSTD = { Id = 2; IsVip = true; Credit = 200.0M } let assertSTD = upgradeCustomerComposed { customerSTD with Id = 3; Credit = 50.0M } = { Id = 3; IsVip = false; Credit = 100.0M }.