Allows generic promises