intersection + union complete
inverse compiles
inverse compiles
isInjective compiles