ref: 54da79816fab4a03e8f6022d6c9764d9099abd60
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 ;; }