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