Added a private constructor in Optional, to make it sealed to only Some and None
Gathered the complete collection API as interfaces
Simplifying the type hierarchy a bit, which was stupidly complex at this point.