ref: 1eadc811d6caf591b73d236957617e80811e2637
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 ;; }