let unopt ?(exc = Failure "AXOLang.unopt can't unopt None") ?default vopt =
    match (default, vopt) with
      | _     , Some v -> v
      | Some v, None   -> v
      | None  , None   -> raise exc