ref: c4830c9459bd863aefd7966ea3b542b45d60560e
dir: /libstd/option.myr/
use "types.use"
use "fmt.use"
use "varargs.use"
pkg std =
type option(@a) = union
`Some @a
`None
;;
generic try : (v : option(@a), msg : byte[:], args : ... -> @a)
generic tryv : (v : option(@a), msg : byte[:], args : valist -> @a)
;;
generic try = {v, msg, args
-> tryv(v, msg, vastart(&args))
}
generic tryv = {v, msg, ap
match v
`None: fatalv(1, msg, ap);;
`Some a: -> a;;
;;
}