this is absolutely a fair point that i should consider, although i also have this:
let anyOrThrow = obj =>
switch any(obj) {
| Some(o) => o
| None => throw(InvalidValue(Obj.magic(obj)))
}
as part of the parser, where obj is a'