Skip to content

Roadmap V2.0Β #288

@gusty

Description

@gusty

I think for V2.0 we can start discussing features here, before moving to a formal project.

What comes to my mind at the moment is:

  1. Remove subsumption from Applicatives: Right now seq "eats" all custom types implementing seq

  2. Same for Traversable, same situation: although this might not require a breaking change (todo find out)

  3. Implement IEnumerable for Vectors, now that (1) has to be done.

  4. New ListT monad transformer, possibly new SeqT as well, coded using a similar technique as the one used for Free Monads.

  5. Review computation expressions: autosense will be removed but we have to do something to make it easy for users to understand why a strict monad can't be used with the non-strict CE. Maybe make compilation fail when calling a TryWith?

  6. Add ValueTuple, ValueTask and other latest addition to the framework. We can require a higher framework version

  7. Consider suggestions by @dsyme regarding using the return type for type inference.

Am I missing something?

EDIT

  1. Better task support (maybe an intermediate type like Step with conversions to/from Task and its use in Bind an other methods for task).

  2. Consistent type parameters order, this would need to swap type parameters in Validation<'err,'t> to Validation<'t,'err>.

  3. Revisit sequential vs non-sequential applicatives for types like Result (right now map is sequential) and for Matrix (not sure if the current applicative derives from Monad).

  4. Implement a mechanism for Delay/Run strict CE like task, so errors before the first bind are included into the task workflow.

  5. Prioritize operators instead of static members for SRTP defaults, for instance the default for map should be <!> so user types can be used without F#+

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions