///|
fn main {
let reference = @types.Date::new(2024, 1, 1).unwrap()
let maturity = @types.Date::new(2025, 1, 1).unwrap()
let bond = @instrument.FixedRateBond::new(
reference,
maturity,
1000.0,
0.04,
@calendar.SemiAnnual,
@calendar.Actual365Fixed,
@calendar.HolidayCalendar::empty(),
@calendar.Unadjusted,
).unwrap()
let flows = bond.cash_flows().unwrap()
let curve = @curve.FlatCurve::new(reference, 0.035).unwrap()
let value = @pricing.present_value(flows, @curve.DiscountCurve::flat(curve)).unwrap()
println("moonbit-fixedincome bond example")
println("cash flows: \{value.cash_flow_count}")
println("present value: \{value.value}")
}