Sum types: construct from initializer_list and assignment operator + tests.