Basic Storm allows specifying the visibility of declarations at the global level and inside types. The syntax used is a hybrid between C++ and Java. It is possible to specify visibility for individual declarations by including the visibility first, like so:

public Int foo() { 3; }

It is also possible to declare the visibility for a group of functions like in C++:


Int foo() { 3; }
Int bar() { 4; }

If no visibility is specified at all, Storm defaults to public.

Basic Storm supports the following types of visibility for declarations outside of types:

The following types of visibility can be used inside types (both classes and values):