I have some mixed feeling about component programming: add in all
the examples the requirement to give the context (line number for
example) where something happened (either a match or an error)
and suddendly component programming becomes much more "tricky"!!
So for me component programming looks good on paper, but not so
much in the real world..