What is the problem this feature would solve?
More convenient work with other libraries.
The problem is that it is inconvenient to use Effect with other libraries, such as a number of these:
- Next.js - inability to serialize to cache and save function result ('use cache' or unstable_cache)
- Trpc - return promise initially when creating functions and return either promise (Effect.runPromise) or Effect, but because of the impossibility of serialization, I can't use the Effect type
Yes, you can make a promise, but then the Effect type itself is lost and it is not so convenient to control the function in other effects that use this function (promise). You have to work with it as a promis, which is not very convenient, and also removes all the advantages of using the effect:
Here is an example. The person talks about the impossibility of serialization and explains it in a bit more detail. I noticed it in other points, but the gist is the same: https://youtu.be/HInf8wvUovk?t=237
Here's an example of what happens because Effect is not a serializable value:


What is the feature you are proposing to solve the problem?
I don't know yet. Instead of a class, use an object
What alternatives have you considered?
An approximate solution to the problem (Result<T, E>):
https://youtu.be/HInf8wvUovk?t=578
What is the problem this feature would solve?
More convenient work with other libraries.
The problem is that it is inconvenient to use Effect with other libraries, such as a number of these:
Yes, you can make a promise, but then the Effect type itself is lost and it is not so convenient to control the function in other effects that use this function (promise). You have to work with it as a promis, which is not very convenient, and also removes all the advantages of using the effect:
Here is an example. The person talks about the impossibility of serialization and explains it in a bit more detail. I noticed it in other points, but the gist is the same: https://youtu.be/HInf8wvUovk?t=237
Here's an example of what happens because Effect is not a serializable value:


What is the feature you are proposing to solve the problem?
I don't know yet. Instead of a class, use an object
What alternatives have you considered?
An approximate solution to the problem (Result<T, E>):
https://youtu.be/HInf8wvUovk?t=578