class VanillaChronicleMapHolderImpl<K, V, R>
        extends Chaining
        implements VanillaChronicleMapHolder<K, V, R> {

    @Stage("Map")
    private VanillaChronicleMap<K, V, R> m = null;

    public VanillaChronicleMapHolderImpl(VanillaChronicleMap map) {
        super(map);
    }

    public VanillaChronicleMapHolderImpl(
            ChainingInterface rootContextInThisThread, VanillaChronicleMap map) {
        super(rootContextInThisThread, map);
    }

    @Override
    public void initMap(VanillaChronicleMap map) {<FILL_FUNCTION_BODY>}

    @Override
    public VanillaChronicleMap<K, V, R> m() {
        return m;
    }

    @Override
    public VanillaChronicleHash<K, ?, ?, ?> h() {
        return m;
    }

    @Override
    public ChronicleMap<K, V> map() {
        return m;
    }

    @Override
    public ChronicleSet<K> set() {
        return m.chronicleSet;
    }

    public ChronicleHash<K, ?, ?, ?> hash() {
        return set() != null ? set() : map();
    }
}

        // alternative to this "unsafe" casting approach is proper generalization
        // of Chaining/ChainingInterface, but this causes issues with current version
        // of stage-compiler.
        // TODO generalize Chaining with <M extends VanillaCM> when stage-compiler is improved.
        //noinspection unchecked
        m = map;
    
<methods>public void <init>(VanillaChronicleMap#RAW) ,public void <init>(net.openhft.chronicle.hash.impl.stage.hash.ChainingInterface, VanillaChronicleMap#RAW) ,public T contextAtIndexInChain(int) ,public T getContext(Class<? extends T>, BiFunction<net.openhft.chronicle.hash.impl.stage.hash.ChainingInterface,VanillaChronicleMap#RAW,T>, VanillaChronicleMap#RAW) ,public List<net.openhft.chronicle.hash.impl.stage.hash.ChainingInterface> getContextChain() ,public abstract void initMap(VanillaChronicleMap#RAW) ,public void initUsed(boolean, VanillaChronicleMap#RAW) ,public boolean usedInit() <variables>public final non-sealed List<net.openhft.chronicle.hash.impl.stage.hash.ChainingInterface> contextChain,private boolean firstContextLockedInThisThread,public final non-sealed int indexInContextChain,public final non-sealed net.openhft.chronicle.hash.impl.stage.hash.ChainingInterface rootContextInThisThread,public boolean used