** Indicates the Err has a more interesting cause@NoDocmixin Unwrappable {abstract Err? cause()}** As thrown by IoCconstclass IocErr : Err, Unwrappable {internalnew make(Str msg := "", Err? cause := null) : super(msg, cause){}}** A generic helper Err thrown when a value is not found in an expected list of values.** ** This purposely does not extend `IocErr` so it may be freely used by other frameworksconstclass NotFoundErr : Err {const Str[] valuesnew make(Str msg, Obj?[] values, Err? cause := null) : super(msg + availableValues(values), cause){this.values = values.exclude {it == null}.map {it.toStr }} Str availableValues(Obj?[] values){ vals := values.exclude {it == null}.map {it.toStr }.join(", ")return" Available values = ${vals}"}}** Thrown when an impossible condition occurs. You know when - we've all written comments like:** ** '// this should never happen...' constclass WtfErr : Err {new make(Str msg, Err? cause := null) : super(msg, cause){}}