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