Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 5 of language-ext merging into main #1327

Merged
merged 259 commits into from
May 17, 2024
Merged

Version 5 of language-ext merging into main #1327

merged 259 commits into from
May 17, 2024

Conversation

louthy
Copy link
Owner

@louthy louthy commented May 17, 2024

Language-ext is inching closer to a beta release for version 5.0.0 which is a huge departure from version 4.*. There are many breaking changes, so if you're hearing about this for the first time, it's worth looking at:

I have now branched the latest source for v4.* from main into a branch called v4-latest.

I will not be supporting v4 any more -- I just don't have the bandwidth to build and support v5 and support v4 too. For those who are not happy with these changes or need to stay on v4 for longer, you can of course fork this repo and work from the v4-latest branch, the library is MIT licensed, so you can do whatever you want with it.

If that is too extreme and you would like to leverage v5 going forward, but also miss the removed types, like EitherAsync, etc. Remember again, this is an MIT licensed project, just go to EitherAsync.cs and copy'n'paste it into your project or a new repo - you may have to patch a few things up - but that can give you both old and new support.

Moving the v5 branch to main is symbolic more than anything else, there's still some ways to go to a full release, but it also means the changes are more visible to visitors of this repo.

 - Makes it more like a function A → B, rather than B → A
 - Added resource handling monads and transducers
 - Added bind operators so they can work with the IO monad
- Streaming of enumerable and async-enumerable
  - via transducera
  - via IO monad
- New Pure and Fail types
- LiftIO type for temporary lifting functions that then work with other monads
- First pass of catching for transducers, will change
- Extensions
- Prelude
- Avoids space leaks in recursive LINQ expressions
- New type called `Many` to reduce generics explosions
- Extensions for Many
- Prelude for Many
- implicit conversion from Many to IO
@louthy louthy merged commit 1b93f2a into main May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant