public static X status(this bool self, ValidString reason = null, [P] string path = "", [M] string member = "", [L] int line = 0) => X.log ? Lg.Status(self ? X._done : X._fail, reason, path, member, line) : self ? X._done : X._fail;
public static status cont(ValidString reason = null, [P] S p = "", [M] S m = "", [L] int l = 0) => log?Lg.Status(_cont, reason, p, m, l) : _cont;
public static status fail(ValidString reason = null, [P] S p = "", [M] S m = "", [L] int l = 0) => log?Lg.Status(_fail, reason, p, m, l) : _fail;
public static status done(ValidString reason = null, [P] S p = "", [M] S m = "", [L] int l = 0) => log?Lg.Status(_done, reason, p, m, l) : _done;
public status Via(ValidString reason = null, [P] string path = "", [M] string member = "", [L] int line = 0) => log?Lg.Status(this, reason, path, member, line) : this;
public static status Eval(status s, [P] S path = "", [M] S member = "", [L] int line = 0) => log?Lg.Status(s, null, path, member, line) : s;