started building the primitive for discriminating IORefs and STRefs