Thank you!
Regarding Either and Optional: I maintain a dfunc library: https://pub.dev/packages/dfunc
We use it internally, so it's not properly documented yet (but I have it in plans). Actually, with the migration to null-safety I dropped support for a standalone Optional class and introduced extensions to nullable types instead.
You can take a look at it for the inspiration, or you can use the library as is (despite the lack of documentation, it should be pretty stable, we use it in production). Anyway, feel free to reach me out here or in the library repo, if there are some unclear moments.