I like option 1, but I am not sure about breaking backward compatibility. We could always version up if we want to do that. Option 1 retains the consistency found in the FSharp.Core library. However, we have several other areas where this is also broken and should be fixed. If we make this change, we should fix everything at once and define a set of coding guidelines for future contributions.
Sent from Windows Mail
Three-part question:
1) Some structures have type defined within namespace FSharpx.DataStructures and module values defined under module with same name as type. Example:
namespace FSharpx.DataStructures
type DList<'a> =
...
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
module DList =
let empty<'a> : DList<'a> = Nil
...
Others are defined with the type and module values all within the named module. Example: BootstrappedQueue
I would prefer standardizing on the first method. What is the opinion of core team members?
2) Not all module values that could be defined inline are. I assume inline module values are preferred when possible. Thoughts?
3) What is the core team memberss opinions about breaking backwards compatability to achieve uniformness in the data structures API (especially in regards to item 1)?