Use virtual methods instead of Calli to implement functors.