module Accessibility // This type is not usable outside of this file type private MyPrivateType() = // x is private since this is an internal let binding let x = 5 // X is private and does not appear in the QuickInfo window // when viewing this type in the Visual Studio editor member private this.X() = 10 member this.Z() = x * 100 type internal MyInternalType() = let x = 5 member private this.X() = 10 member this.Z() = x * 100 // Top-level let bindings are public by default, // so "private" and "internal" are needed here since a // value cannot be more accessible than its type. let private myPrivateObj = new MyPrivateType() let internal myInternalObj = new MyInternalType() // let bindings at the top level are public by default, // so result1 and result2 are public. let result1 = myPrivateObj.Z let result2 = myInternalObj.Z