+ $to.
+
+ $from and $to are allowed to be the same scalar, and the given areas can
+ rightfully overlap.
+
+ $from is upgraded to a string if it isn't one already. If "$from_start +
+ $length" goes out of the bounds of $from, then the extra bits are
+ treated as zeros. $to is upgraded to a string and extended if necessary.
+ The content of $from is not modified, except when it is equal to $to.
+ Bits that are outside of the specified area are left untouched.
+
+ This function does not need to allocate any extra memory.
+
+ "vshift"
+ vshift $v, $start, $length => $bits, $insert;
+
+ In the area starting at $start and of length $length in $v, shift bits
+ "abs $bits" positions left if "$bits > 0" and right otherwise.
+
+ When $insert is defined, the resulting gap is also filled with ones if
+ $insert is true and with zeros if $insert is false.
+
+ $v is upgraded to a string if it isn't one already. If "$start +
+ $length" goes out of the bounds of $v, then the extra bits are treated
+ as zeros. Bits that are outside of the specified area are left
+ untouched.
+
+ This function does not need to allocate any extra memory.
+
+ "vrot"
+ vrot $v, $start, $length, $bits;
+
+ In the area starting at $start and of length $length in $v, rotates bits
+ "abs $bits" positions left if "$bits > 0" and right otherwise.
+
+ $v is upgraded to a string if it isn't one already. If "$start +
+ $length" goes out of the bounds of $v, then the extra bits are treated
+ as zeros. Bits that are outside of the specified area are left
+ untouched.
+
+ This function currently allocates an extra buffer of size "O($bits)".
+
+ "veq"
+ veq $v1 => $v1_start, $v2 => $v2_start, $length;