let BValue derive show ord and eq