better generics support

generic functions/methods are supported