tighten the provisos in mkMemreadEngine