The type declaration for copy is wrong:
copy :: Offset -> Offset -> Buffer -> Offset -> Buffer -> Buffer
Buffer.copy modifies the target buffer and returns the number of octets copied:
> var b1 = new Buffer("foo");
undefined
> var b2 = new Buffer("BARBAZ");
undefined
> b1.copy(b2, 2, 0, 3);
3
> b2.toString();
'BAfooZ'