The NModel Library provides attributes and data types for writing model programs in C#.

The library is most thoroughly documented in the online help that is included when you install NModel.
To access the online help: Start Menu -> All programs -> NModel -> NModel documentation

The library is also documented in this NModel Reference (45-page PDF document).

Model programs must use the library data types for collections and objects, not the usual C# and .NET data types.

Some of the attributes in the library are: Some of these attributes can take additional arguments not shown here, consult the documentation. The documentation describes more attributes as well.

Some of the data types in the library are: Collections in model programs must belong to the library collection types Set etc., not the usual .NET collection types such as array, ArrayList, or Dictionary.

The library collection types all behave as value types. They use structural equality and they are immutable, so you must code s = s.Add(x), not just s.Add(x).

For object-oriented modeling, where instance fields are used as state variables, classes in model programs must be derived from the library class type LabeledInstance, not just object.