Base.BlitSourcetype ('src, 'dst) blit =
src:'src @ local ->
src_pos:int ->
dst:'dst @ local ->
dst_pos:int ->
len:int ->
unitIf blit : (src, dst) blit, then blit ~src ~src_pos ~len ~dst ~dst_pos blits len values from src starting at position src_pos to dst at position dst_pos. Furthermore, blit raises if src_pos, len, and dst_pos don't specify valid slices of src and dst.
type ('src, 'dst) blito =
src:'src @ local ->
?src_pos:int ->
?src_len:int ->
dst:'dst @ local ->
?dst_pos:int ->
unit ->
unitblito is like blit, except that the src_pos, src_len, and dst_pos are optional (hence the "o" in "blito"). Also, we use src_len rather than len as a reminder that if src_len isn't supplied, then the default is to take the slice running from src_pos to the end of src.
type ('src, 'dst) blit_global =
src:'src ->
src_pos:int ->
dst:'dst ->
dst_pos:int ->
len:int ->
unitLike blit, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) blito_global =
src:'src ->
?src_pos:int ->
?src_len:int ->
dst:'dst ->
?dst_pos:int ->
unit ->
unitLike blito, but not allowing local_ values (on compilers supporting modes).
If sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
Like sub, but not allowing local_ values (on compilers supporting modes).
Like subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Users of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
If sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
Like sub, but not allowing local_ values (on compilers supporting modes).
Like subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__unique =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Users of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__unique =
sig ... endIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
Like sub, but not allowing local_ values (on compilers supporting modes).
Like subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Users of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__stack =
sig ... endtype ('src, 'dst) sub__unique__stack =
'src @ local ->
pos:int ->
len:int ->
'dst @ local uniqueIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__unique__stack =
?pos:int ->
?len:int ->
'src @ local ->
'dst @ local uniquetype ('src, 'dst) sub_global__unique__stack =
'src ->
pos:int ->
len:int ->
'dst @ local uniqueLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__unique__stack =
?pos:int ->
?len:int ->
'src ->
'dst @ local uniqueLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__unique__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_zero_alloc__'value_or_null_mod_external64_non_float'__unique__stack =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__unique__stack =
sig ... endtype ('src, 'dst) blit__read =
src:'src @ local read ->
src_pos:int ->
dst:'dst @ local ->
dst_pos:int ->
len:int ->
unitIf blit : (src, dst) blit, then blit ~src ~src_pos ~len ~dst ~dst_pos blits len values from src starting at position src_pos to dst at position dst_pos. Furthermore, blit raises if src_pos, len, and dst_pos don't specify valid slices of src and dst.
type ('src, 'dst) blito__read =
src:'src @ local read ->
?src_pos:int ->
?src_len:int ->
dst:'dst @ local ->
?dst_pos:int ->
unit ->
unitblito is like blit, except that the src_pos, src_len, and dst_pos are optional (hence the "o" in "blito"). Also, we use src_len rather than len as a reminder that if src_len isn't supplied, then the default is to take the slice running from src_pos to the end of src.
type ('src, 'dst) blit_global__read =
src:'src @ read ->
src_pos:int ->
dst:'dst ->
dst_pos:int ->
len:int ->
unitLike blit, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) blito_global__read =
src:'src @ read ->
?src_pos:int ->
?src_len:int ->
dst:'dst ->
?dst_pos:int ->
unit ->
unitLike blito, but not allowing local_ values (on compilers supporting modes).
If sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
Like sub, but not allowing local_ values (on compilers supporting modes).
Like subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__read =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Users of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__read =
sig ... endtype ('src, 'dst) sub__read__unique =
'src @ local read ->
pos:int ->
len:int ->
'dst @ uniqueIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__read__unique =
?pos:int ->
?len:int ->
'src @ local read ->
'dst @ uniquetype ('src, 'dst) sub_global__read__unique =
'src @ read ->
pos:int ->
len:int ->
'dst @ uniqueLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__read__unique =
?pos:int ->
?len:int ->
'src @ read ->
'dst @ uniqueLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__read__unique =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_zero_alloc__'value_or_null_mod_external64_non_float'__read__unique =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__read__unique =
sig ... endIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__read__stack =
?pos:int ->
?len:int ->
'src @ local read ->
'dst @ localLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__read__stack =
?pos:int ->
?len:int ->
'src @ read ->
'dst @ localLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__read__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_zero_alloc__'value_or_null_mod_external64_non_float'__read__stack =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__read__stack =
sig ... endtype ('src, 'dst) sub__read__unique__stack =
'src @ local read ->
pos:int ->
len:int ->
'dst @ local uniqueIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__read__unique__stack =
?pos:int ->
?len:int ->
'src @ local read ->
'dst @ local uniquetype ('src, 'dst) sub_global__read__unique__stack =
'src @ read ->
pos:int ->
len:int ->
'dst @ local uniqueLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__read__unique__stack =
?pos:int ->
?len:int ->
'src @ read ->
'dst @ local uniqueLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_separable'__read__unique__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__read__unique__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_zero_alloc__'value_or_null_mod_external64_non_float'__read__unique__stack =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1__'value_or_null_mod_external64_non_float'__read__unique__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_separable'__read__unique__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__read__unique__stack =
sig ... endtype ('src, 'dst) blit__immutable =
src:'src @ local immutable ->
src_pos:int ->
dst:'dst @ local ->
dst_pos:int ->
len:int ->
unitIf blit : (src, dst) blit, then blit ~src ~src_pos ~len ~dst ~dst_pos blits len values from src starting at position src_pos to dst at position dst_pos. Furthermore, blit raises if src_pos, len, and dst_pos don't specify valid slices of src and dst.
type ('src, 'dst) blito__immutable =
src:'src @ local immutable ->
?src_pos:int ->
?src_len:int ->
dst:'dst @ local ->
?dst_pos:int ->
unit ->
unitblito is like blit, except that the src_pos, src_len, and dst_pos are optional (hence the "o" in "blito"). Also, we use src_len rather than len as a reminder that if src_len isn't supplied, then the default is to take the slice running from src_pos to the end of src.
type ('src, 'dst) blit_global__immutable =
src:'src @ immutable ->
src_pos:int ->
dst:'dst ->
dst_pos:int ->
len:int ->
unitLike blit, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) blito_global__immutable =
src:'src @ immutable ->
?src_pos:int ->
?src_len:int ->
dst:'dst ->
?dst_pos:int ->
unit ->
unitLike blito, but not allowing local_ values (on compilers supporting modes).
If sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
Like sub, but not allowing local_ values (on compilers supporting modes).
Like subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__immutable =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Users of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable =
sig ... endtype ('src, 'dst) sub__immutable__unique =
'src @ local immutable ->
pos:int ->
len:int ->
'dst @ uniqueIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__immutable__unique =
?pos:int ->
?len:int ->
'src @ local immutable ->
'dst @ uniquetype ('src, 'dst) sub_global__immutable__unique =
'src @ immutable ->
pos:int ->
len:int ->
'dst @ uniqueLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__immutable__unique =
?pos:int ->
?len:int ->
'src @ immutable ->
'dst @ uniqueLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_separable'__immutable__unique =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__immutable__unique =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable__unique =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1__'value_or_null_mod_external64_non_float'__immutable__unique =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_separable'__immutable__unique =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable__unique =
sig ... endtype ('src, 'dst) sub__immutable__stack =
'src @ local immutable ->
pos:int ->
len:int ->
'dst @ localIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__immutable__stack =
?pos:int ->
?len:int ->
'src @ local immutable ->
'dst @ localtype ('src, 'dst) sub_global__immutable__stack =
'src @ immutable ->
pos:int ->
len:int ->
'dst @ localLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__immutable__stack =
?pos:int ->
?len:int ->
'src @ immutable ->
'dst @ localLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_separable'__immutable__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__immutable__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable__stack =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1__'value_or_null_mod_external64_non_float'__immutable__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_separable'__immutable__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable__stack =
sig ... endtype ('src, 'dst) sub__immutable__unique__stack =
'src @ local immutable ->
pos:int ->
len:int ->
'dst @ local uniqueIf sub : (src, dst) sub, then sub ~src ~pos ~len returns a sequence of type dst containing len characters of src starting at pos.
subo is like sub, except pos and len are optional.
type ('src, 'dst) subo__immutable__unique__stack =
?pos:int ->
?len:int ->
'src @ local immutable ->
'dst @ local uniquetype ('src, 'dst) sub_global__immutable__unique__stack =
'src @ immutable ->
pos:int ->
len:int ->
'dst @ local uniqueLike sub, but not allowing local_ values (on compilers supporting modes).
type ('src, 'dst) subo_global__immutable__unique__stack =
?pos:int ->
?len:int ->
'src @ immutable ->
'dst @ local uniqueLike subo, but not allowing local_ values (on compilers supporting modes).
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_mod_external64'__immutable__unique__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
Blit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_separable'__immutable__unique__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S1_phantom2_distinct__'value_or_null_mod_external64_non_float'__immutable__unique__stack =
sig ... endBlit for distinct src and dst types that each have two parameters: 'elt that must be the same in both types, and 'phantom that can be different.
module type S__'value_or_null_mod_external64_non_float'__immutable__unique__stack =
sig ... endmodule type S1__'value_or_null_mod_external64_non_float'__immutable__unique__stack =
sig ... endmodule type S1_zero_alloc__'value_or_null_mod_separable'__immutable__unique__stack =
sig ... endmodule type S1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable__unique__stack =
sig ... endUsers of modules matching the blit signatures S, S1, S_phantom_distinct, and S1_phantom2_distinct only need to understand the code above. The code below is only for those that need to implement modules that match those signatures.
module type Sequence1__'value_or_null_mod_external64_non_float'__immutable__unique__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_mod_external64'__immutable__unique__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_separable'__immutable__unique__stack =
sig ... endmodule type Sequence1_zero_alloc__'value_or_null_mod_external64_non_float'__immutable__unique__stack =
sig ... endThere are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
Make is for blitting between two values of the same monomorphic type.
Make_distinct is for blitting between values of distinct monomorphic types.
Make1 is for blitting between two values of the same polymorphic type.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.
There are various Make* functors that turn an unsafe_blit function into a blit function. The functors differ in whether the sequence type is monomorphic or polymorphic, and whether the src and dst types are distinct or are the same.
The blit functions make sure the slices are valid and then call unsafe_blit. They guarantee at a call unsafe_blit ~src ~src_pos ~dst ~dst_pos ~len that:
len > 0
&& src_pos >= 0
&& src_pos + len <= get_src_len src
&& dst_pos >= 0
&& dst_pos + len <= get_dst_len dstThe Make* functors also automatically create unit tests.