instance Alternative f => Alternative (f :+: g) where
    empty = InL empty
    InL x <|> InL y = InL (x <|> y)
    InL _ <|> y = y
    x <|> _ = x

This is analogous to the proposed Alternative Either instance.