Sorry but I disagree. I think its fine to say "thou shalt have a language method or specify thou language_method on initialise"

passing delegate is like saying "thou should violate the law of demeter to use this module"