That is, if F is string to string,error, and G is empty to string,error then
s := check F(check G())
check (check A(check B(check C( ... ))))
That is, if F is string to string,error, and G is empty to string,error then
either assigns a string to s, or calls the handler.