@BitFlipper: Rather than using generics here, I'd make an IBuffer interface and then create types for FloatBuffer and DoubleBuffer. Then Bar's parameter can become IBuffer.