fn positive_number(value: Number) -> Result[Number, Text]:
    if value > 0:
        return ok(value)
    return err("value must be positive")

fn doubled_positive(value: Number) -> Result[Number, Text]:
    let accepted: Number = positive_number(value)?
    return ok(accepted * 2)

fn forwarded(value: Number) -> Result[Number, Text]:
    return positive_number(value)?

start:
    let doubled: Result[Number, Text] = doubled_positive(4)
    let rejected: Result[Number, Text] = doubled_positive(-1)
    say result_unwrap(doubled)
    say result_unwrap_error(rejected)
    say result_unwrap(forwarded(9))
