def __getitem__(self, item):
        try:
            if isinstance(item, ADT):
                return self.__instances__[id(item.__type_constructor__)]
            elif isinstance(typeof(item), ListType):
                return self.__instances__[id(type(item))]
            elif isinstance(item, Hask):
                return self.__instances__[id(typeof(item))]
            return self.__instances__[id(type(item))]
        except __HOLE__:
            raise TypeError("No instance for {0}".format(item))
dataset/ETHPy150Open billpmurphy/hask/hask/lang/type_system.py/TypeMeta.__getitem__