Namespaces

A .NET construct to attach a name to a group of program elements to avoid naming conflicts when used with other libraries.

Can contain modules and types but not functions.

Reasonably sized applications and libraries should consider this approach to avoid naming conflicts with other libraries and aid organization of modules and types.

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
namespace MyAppName

type Vector = {
  x: float
  y: float
}

module Vector =
  let create () =
    { x = 0.0; y = 0.0 }