Namespaces
See original GitHub issueGiven the current (mature) state of the library, it’s time to think about the namespaces.
We have currently:
-
FSharpPlus which auto-opens Operators
-
Data: contains all F#+ types, including Monoids, Monads, Collections.
-
Operators contains mostly generic functions and operators that are being added on top of standard F# operators functions, without redefinitions. It also contains some modules:
- Arrows: defines additional arrow related operators by shadowing bit operators.
- Applicative Math: although it’s in a separated module, these operators don’t conflict with anything
- Generic Math: redefines some very basic math operators, by opening this module you enter in a Generic math mode, it’s easier to write generic math functions but some interactions with .net functions with funny semantics for math operators and also units of measures become restricted.
-
Lens: contains not just Lens, it also comes with Prism, Traversals, Iso. I think Optics is being used to encompass all these abstractions. An issue here is that
set
is a redefinition of an F# keyword. I was thinking renaming it, maybe toburn
which is the way you cloud write something through a lens in the physical world. -
Compatibility: At the moment it contains only Haskell, but more modules could be added later for toehr languages (purescript for example). This seems to make sense to me.
-
-
FsControl contains all (typeclassy) Abstractions, we inherited this namespace from FsControl but we can rename it to either FSharpPlus.Control or FSharpPlus.Invokables, any other suggestion?
Any thoughts?
Issue Analytics
- State:
- Created 6 years ago
- Comments:9 (9 by maintainers)
Top GitHub Comments
I like
FSharpPlus.Control
. It’s short and used in Haskell as well.This was the last remain (together with the samples folder I removed two days ago) of FsControl.
I feel a bit sad.