(boolean mem)
| 462 | // ints and floats cannot widen. |
| 463 | public final boolean isGLB(boolean mem) { return recurClose(recurOpen()._isGLB(mem)); }; |
| 464 | boolean _isGLB(boolean mem) { |
| 465 | return switch(_type) { |
| 466 | case TBOT -> false; |
| 467 | case TNIL -> false; |
| 468 | case TCTRL -> true; |
| 469 | case TXCTRL -> false; |
| 470 | case TXNIL -> false; |
| 471 | case TTOP -> false; |
| 472 | default -> throw Utils.TODO(); |
| 473 | }; |
| 474 | } |
| 475 | public final Type glb(boolean mem) { |
| 476 | if( isGLB(mem) ) return this; |
| 477 | Type glb = recurOpen()._glb(mem).recurClose(); |