ref: 064b5d2b2f9c54fcbd0e928d75253032e51f7e6f
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 ;; }