make either-or generic