def f_controlledresource(index: int,
                          key: object) -> XP.XControlledResource:
     return XP.XControlledResource(self, index, p.tags, args)
        "aa": lambda x: ST.STArgAddressedValue(*x),
        "at": lambda x: ST.STArgNullTerminatorPos(*x),
        "st": lambda x: ST.STArgSizeOfType(*x),
        "ax": lambda x: ST.STArithmeticExpr(*x),
        "fs": lambda x: ST.STFormattedOutputSize(*x),
        "rt": lambda x: ST.STRuntimeValue(*x),
    }

xpredicate_constructors: Dict[
    str, Callable[[Tuple["InterfaceDictionary", int, List[str], List[int]]],
                  XPredicate], ] = {
                      "ab": lambda x: XP.XAllocationBase(*x),
                      "bw": lambda x: XP.XBlockWrite(*x),
                      "b": lambda x: XP.XBuffer(*x),
                      "c": lambda x: XP.XConstTerm(*x),
                      "cr": lambda x: XP.XControlledResource(*x),
                      "f": lambda x: XP.XFalse(*x),
                      "fi": lambda x: XP.XFormattedInput(*x),
                      "fr": lambda x: XP.XFreed(*x),
                      "fn": lambda x: XP.XFunctional(*x),
                      "ga": lambda x: XP.XGlobalAddress(*x),
                      "ha": lambda x: XP.XHeapAddress(*x),
                      "i": lambda x: XP.XInitialized(*x),
                      "ir": lambda x: XP.XInitializedRange(*x),
                      "iv": lambda x: XP.XInvalidated(*x),
                      "ifs": lambda x: XP.XInputFormatString(*x),
                      "nm": lambda x: XP.XNewMemory(*x),
                      "no": lambda x: XP.XNoOverlap(*x),
                      "nn": lambda x: XP.XNotNull(*x),
                      "nng": lambda x: XP.XNonNegative(*x),
                      "nz": lambda x: XP.XNotZero(*x),