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