Can someone explain why the performance is effected so dramatically?  It seems, you would need to add type checking overhead, but it also seems like you could make better optimizations and remove a layer of indirection.