# F# Access Modifiers
- Constructors of both discriminated unions and records can be set to private, meaning the type can be referenced but not instantiated outside of the module that defined it.
- One constructor access modifier applies to the whole type (all cases of a discriminated union). However, both a public factory function and a public active pattern with the same name allow for different accessibilities of individual cases.
- Be careful not to apply `private` to a type defined in a namespace, as it does not behave as expected
## Sources
- [[Access Control - FSharp]]