add combinator for sum types