Yes, I understand. But by "implicitly" I really meant that. You don't see the type, only the compiler does. The programmer only sees the non-error part of the type (the "Right" part of Either).
C Foo(A a) = ...
Someone then provides me with some not-A error value. What should I do? What do you mean by implicit.