Nobody really knows what `shared` should be doing, and right now it does nothing but impose some semantic checks in the compiler.