11# Project details
2- F# 9
3- C# 13
4- .NET 8 and 9
2+
3+ F# 10
4+ C# 14
5+ .NET 10
56Nullability checks enabled
67
78## Shell operations
@@ -39,6 +40,7 @@ Prefer `voption` over `option`
3940Prefer ` task ` CE over ` async ` CE
4041
4142This is how you define a non-default F# class constructor:
43+
4244``` fsharp
4345type DerivedClass =
4446 inherit BaseClass
@@ -61,6 +63,7 @@ type DerivedClass =
6163Always prefer F# class initializers over property assignment! ** You absolutely must use F# class initializers instead of property assignment** !
6264
6365Having a class declaration:
66+
6467``` F#
6568type MyClass (someConstructorParam : string) =
6669 member ReadOnlyProperty = someConstructorParam
@@ -70,13 +73,15 @@ type MyClass (someConstructorParam : string) =
7073```
7174
7275The following excerpt of class creation is wrong:
76+
7377``` F#
7478let myClass = MyClass("some value")
7579myClass.MutableProperty1 <- "new value"
7680myClass.MutableProperty2 <- "new value"
7781```
7882
7983The following excerpt (uses initializer syntax) of class creation is right:
84+
8085``` F#
8186let myClass =
8287 MyClass(
@@ -93,9 +98,11 @@ let myClass =
9398## Coding instructions
9499
95100During the implementation, if you need some types or members defined in the other project but that project is not referenced, then:
101+
961021 . stop implementing the solution;
971032 . respond with summary about what is needed and which project it is defined in;
981043 . ask if you can add the reference before continuing coding.
105+
99106Never ever duplicate the code unless you got explicit confirmation that you are allowed to do so.
100107
101108## Documentation and Naming
0 commit comments