Note: I am new to ZCA, so the code may be incorrect; however, I am somewhat familiar with the way ZCA works.
Given for example:
class I1(Interface):
def c1():
pass
class U1(object):
implements(I1) #is this necessary?
def c1():
#do some things here
Is the implements(I1)
line needed, or can ZCA figure out on its own that U1 implements I1 (kind of like the way interfaces in Go work)?