include Interface.Sval d1 : 'a Type_functions.one dimval d2 : 'a Type_functions.two dimval d3 : 'a Type_functions.three dimval d4 : 'a Type_functions.four dimval dim_to_int : 'a dim ‑> intmodule Rank : sig ... endval pp : Format.formatter ‑> ('dim, 'rank) t ‑> unitval scalar : Interface.k ‑> ('a * 'b) scalarval (~+) : Interface.k ‑> ('a * 'b) scalarval vec2 : Interface.k ‑> Interface.k ‑> ('a * 'b) vec2val vec3 : Interface.k ‑> Interface.k ‑> Interface.k ‑> ('a * 'b) vec3val vec4 : Interface.k ‑> Interface.k ‑> Interface.k ‑> Interface.k ‑> ('a * 'b) vec4val (|+|) : (([< `one of 'dim2 * [< `one of 'dim3 * 'a Type_functions.two | `three of 'dim3 * 'a Type_functions.four | `two of 'dim3 * 'a Type_functions.three ] * 'dim2 * [< `one of 'dim3 * 'a Type_functions.two | `three of 'dim3 * 'a Type_functions.four | `two of 'dim3 * 'a Type_functions.three ] | `three of 'dim2 * [< `one of 'dim3 * 'a Type_functions.four ] * 'dim2 * [< `one of 'dim3 * 'a Type_functions.four ] | `two of 'dim2 * [< `one of 'dim3 * 'a Type_functions.three | `two of 'dim3 * 'a Type_functions.four ] * 'dim2 * [< `one of 'dim3 * 'a Type_functions.three | `two of 'dim3 * 'a Type_functions.four ] ], 'dim2, 'dim3, 'a) Type_functions.nat_sum, [< `one of 'b | `zero of 'c ]) t ‑> ('dim2, [< `one of 'd | `zero of 'e ]) t ‑> ('dim3, 'f Type_functions.one) tval map : (Interface.k ‑> Interface.k) ‑> ('dim, 'rank) t ‑> ('dim, 'rank) tval map2 : (Interface.k ‑> Interface.k ‑> Interface.k) ‑> ('dim, 'rank) t ‑> ('dim, 'rank) t ‑> ('dim, 'rank) tval (+) : ('dim1, ([< `one of 'rank2 * [< `one of 'rank3 * 'dim1 * 'dim3 * 'a Type_functions.one * 'dim2 * 'dim2 | `zero of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim1 ] * 'rank2 * [< `one of 'rank3 * 'dim1 * 'dim3 * 'a Type_functions.one * 'dim2 * 'dim2 | `zero of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim1 ] | `two of 'rank2 * [< `two of 'rank3 * 'dim1 * 'dim3 * 'a Type_functions.two * 'dim1 * 'dim3 | `zero of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim1 ] * 'rank2 * [< `two of 'rank3 * 'dim1 * 'dim3 * 'a Type_functions.two * 'dim1 * 'dim3 | `zero of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim1 ] | `zero of 'rank2 * [< `one of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim2 | `two of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim2 | `zero of 'rank3 * 'dim3 * 'a Type_functions.z * 'b Type_functions.one ] * 'rank2 * [< `one of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim2 | `two of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim2 | `zero of 'rank3 * 'dim3 * 'a Type_functions.z * 'b Type_functions.one ] ], 'rank2, 'rank3, 'dim1, 'dim2, 'dim3, 'a * 'b * 'c) Type_functions.sum) t ‑> ('dim2, 'rank2) t ‑> ('dim3, 'rank3) tval (-) : ('a, ([< `one of 'rank2 * [< `one of 'rank3 * 'dim1 * 'dim3 * 'b Type_functions.one * 'dim2 * 'dim2 | `zero of 'rank3 * 'dim3 * 'b Type_functions.one * 'dim1 ] * 'rank2 * [< `one of 'rank3 * 'dim1 * 'dim3 * 'b Type_functions.one * 'dim2 * 'dim2 | `zero of 'rank3 * 'dim3 * 'b Type_functions.one * 'dim1 ] | `two of 'rank2 * [< `two of 'rank3 * 'dim1 * 'dim3 * 'b Type_functions.two * 'dim1 * 'dim3 | `zero of 'rank3 * 'dim3 * 'b Type_functions.two * 'dim1 ] * 'rank2 * [< `two of 'rank3 * 'dim1 * 'dim3 * 'b Type_functions.two * 'dim1 * 'dim3 | `zero of 'rank3 * 'dim3 * 'b Type_functions.two * 'dim1 ] | `zero of 'rank2 * [< `one of 'rank3 * 'dim3 * 'b Type_functions.one * 'dim2 | `two of 'rank3 * 'dim3 * 'b Type_functions.two * 'dim2 | `zero of 'rank3 * 'dim3 * 'b Type_functions.z * 'c Type_functions.one ] * 'rank2 * [< `one of 'rank3 * 'dim3 * 'b Type_functions.one * 'dim2 | `two of 'rank3 * 'dim3 * 'b Type_functions.two * 'dim2 | `zero of 'rank3 * 'dim3 * 'b Type_functions.z * 'c Type_functions.one ] ], 'rank2, 'rank3, 'dim1, 'dim2, 'dim3, 'b * 'c * 'd) Type_functions.sum) t ‑> ('a, 'rank2) t ‑> ('a, 'rank3) tval (*) : ('dim1, ([< `one of 'rank2 * [< `one of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `two of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim2 ] * 'rank2 * [< `one of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `two of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim2 ] | `two of 'rank2 * [< `one of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `two of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.two * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim2 ] * 'rank2 * [< `one of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `two of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.two * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim2 ] | `zero of 'rank2 * [< `one of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim2 | `two of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim2 | `zero of 'rank3 * 'dim3 * 'a Type_functions.z * 'b Type_functions.one ] * 'rank2 * [< `one of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim2 | `two of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim2 | `zero of 'rank3 * 'dim3 * 'a Type_functions.z * 'b Type_functions.one ] ], 'rank2, 'rank3, 'dim1, 'dim2, 'dim3, 'a * 'b * 'c) Type_functions.product) t ‑> ('dim2, 'rank2) t ‑> ('dim3, 'rank3) tval (/) : ('dim1, ([< `one of 'rank2 * [< `one of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `two of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim1 ] * 'rank2 * [< `one of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `two of 'rank3 * 'dim2 * 'dim3 * 'a Type_functions.one * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.one * 'dim1 ] | `two of 'rank2 * [< `two of 'rank3 * 'dim2 * 'dim3 * 'b Type_functions.two * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim1 ] * 'rank2 * [< `two of 'rank3 * 'dim2 * 'dim3 * 'b Type_functions.two * 'dim1 * 'dim1 | `zero of 'rank3 * 'dim3 * 'a Type_functions.two * 'dim1 ] | `zero of 'rank2 * [< `zero of 'rank3 * 'dim3 * 'a Type_functions.z * 'b Type_functions.one ] * 'rank2 * [< `zero of 'rank3 * 'dim3 * 'a Type_functions.z * 'b Type_functions.one ] ], 'rank2, 'rank3, 'dim1, 'dim2, 'dim3, 'a * 'b * 'c) Type_functions.div) t ‑> ('dim2, 'rank2) t ‑> ('dim3, 'rank3) tval (|*|) : ('dim, 'rank) t ‑> ('dim, 'rank) t ‑> Interface.kval norm : ('dim, 'rank) t ‑> Interface.kval orthonormalize : ('dim, 'a Type_functions.one) t list ‑> ('dim, 'b Type_functions.one) t listval distance : ('dim, 'rank) t ‑> ('dim, 'rank) t ‑> Interface.kval norm_1 : ('dim, 'rank) t ‑> Interface.kval norm_q : float ‑> ('dim, 'rank) t ‑> Interface.kval cross : (([< `three of 'dim2 * 'rank2 * 'b Type_functions.three * 'c Type_functions.one * 'dim2 * 'rank2 * 'b Type_functions.three * 'c Type_functions.one | `two of 'dim2 * 'rank2 * 'b * 'c Type_functions.z * 'dim2 * 'rank2 * 'b * 'c Type_functions.z ] as a, 'dim2 * 'rank2, 'c * 'b) Type_functions.cross, 'd Type_functions.one) t ‑> ('a, 'e Type_functions.one) t ‑> ('dim2, 'rank2) tval (^) : ('dim, 'a Type_functions.one) t ‑> ('dim, 'b Type_functions.one) t ‑> ('dim, 'c Type_functions.two) tval commutator : ('dim, 'a Type_functions.two) t ‑> ('dim, 'b Type_functions.two) t ‑> ('dim, 'c Type_functions.two) tval anticommutator : ('dim, 'a Type_functions.two) t ‑> ('dim, 'b Type_functions.two) t ‑> ('dim, 'c Type_functions.two) tval trace : ('dim, 'a Type_functions.two) t ‑> Interface.kval det : ('dim, 'a Type_functions.two) t ‑> Interface.kval transpose : ('dim, 'a Type_functions.two) t ‑> ('dim, 'b Type_functions.two) tval (&) : ('dim, ([< `one of 'len2 * [< `one of 'len3 * 'a Type_functions.two | `three of 'len3 * 'a Type_functions.four | `two of 'len3 * 'a Type_functions.three ] * 'len2 * [< `one of 'len3 * 'a Type_functions.two | `three of 'len3 * 'a Type_functions.four | `two of 'len3 * 'a Type_functions.three ] | `three of 'len2 * [< `one of 'len3 * 'a Type_functions.four ] * 'len2 * [< `one of 'len3 * 'a Type_functions.four ] | `two of 'len2 * [< `one of 'len3 * 'a Type_functions.three | `two of 'len3 * 'a Type_functions.four ] * 'len2 * [< `one of 'len3 * 'a Type_functions.three | `two of 'len3 * 'a Type_functions.four ] ], 'len2, 'len3, 'a) Type_functions.simple_sum, 'rank, 'group) index ‑> ('dim, 'len2, 'rank, 'group) index ‑> ('dim, 'len3, 'rank, 'group) indexval x' : ([< `four of 'a | `one of 'b | `three of 'c | `two of 'd ], 'e Type_functions.one, 'f Type_functions.one, [ `xyzw ]) indexval y' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.one, [ `xyzw ]) indexval z' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.one, [ `xyzw ]) indexval w' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.one, [ `xyzw ]) indexval xx' : ([< `four of 'a | `one of 'b | `three of 'c | `two of 'd ], 'e Type_functions.one, 'f Type_functions.two, [ `xyzw ]) indexval yx' : ([< `four | `three of 'a | `two of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `xyzw ]) indexval zx' : ([< `four | `three of 'a ], 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval wx' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval xy' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.two, [ `xyzw ]) indexval yy' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.two, [ `xyzw ]) indexval zy' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `xyzw ]) indexval wy' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval xz' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `xyzw ]) indexval yz' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `xyzw ]) indexval zz' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `xyzw ]) indexval wz' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval xw' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval yw' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval zw' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval ww' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `xyzw ]) indexval r' : ([< `four of 'a | `one of 'b | `three of 'c | `two of 'd ], 'e Type_functions.one, 'f Type_functions.one, [ `rgba ]) indexval g' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.one, [ `rgba ]) indexval b' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.one, [ `rgba ]) indexval a' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.one, [ `rgba ]) indexval rr' : ([< `four of 'a | `one of 'b | `three of 'c | `two of 'd ], 'e Type_functions.one, 'f Type_functions.two, [ `rgba ]) indexval gr' : ([< `four | `three of 'a | `two of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `rgba ]) indexval br' : ([< `four | `three of 'a ], 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval ar' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval rg' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.two, [ `rgba ]) indexval gg' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.two, [ `rgba ]) indexval bg' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `rgba ]) indexval ag' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval rb' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `rgba ]) indexval gb' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `rgba ]) indexval bb' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `rgba ]) indexval ab' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval ra' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval ga' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval ba' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval aa' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `rgba ]) indexval s' : ([< `four of 'a | `one of 'b | `three of 'c | `two of 'd ], 'e Type_functions.one, 'f Type_functions.one, [ `stpq ]) indexval t' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.one, [ `stpq ]) indexval p' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.one, [ `stpq ]) indexval q' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.one, [ `stpq ]) indexval ss' : ([< `four of 'a | `one of 'b | `three of 'c | `two of 'd ], 'e Type_functions.one, 'f Type_functions.two, [ `stpq ]) indexval ts' : ([< `four | `three of 'a | `two of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `stpq ]) indexval ps' : ([< `four | `three of 'a ], 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval qs' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval st' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.two, [ `stpq ]) indexval tt' : ([< `four of 'a | `three of 'b | `two of 'c ], 'd Type_functions.one, 'e Type_functions.two, [ `stpq ]) indexval pt' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `stpq ]) indexval qt' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval sp' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `stpq ]) indexval tp' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `stpq ]) indexval pp' : ([< `four of 'a | `three of 'b ], 'c Type_functions.one, 'd Type_functions.two, [ `stpq ]) indexval qp' : ([< 'a Type_functions.four ], 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval sq' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval tq' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval pq' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval qq' : ('a Type_functions.four, 'b Type_functions.one, 'c Type_functions.two, [ `stpq ]) indexval slice : ('dim1, ([< `one of 'len * [< `four of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.four | `one of 'rank3 * 'a Type_functions.z | `three of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.three | `two of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.two ] * 'len * [< `four of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.four | `one of 'rank3 * 'a Type_functions.z | `three of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.three | `two of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.two ] | `two of 'rank2 * [< `one of 'dim1 * 'len * 'dim3 * [< `four of 'dim1 * 'rank3 * 'a Type_functions.four * 'b Type_functions.two | `one of 'rank3 * 'a Type_functions.one | `three of 'dim1 * 'rank3 * 'a Type_functions.three * 'b Type_functions.two | `two of 'dim1 * 'rank3 * 'a Type_functions.two * 'b Type_functions.two ] | `two of 'len * [< `four of 'dim3 * 'rank3 * 'b Type_functions.four * 'a Type_functions.one | `one of 'rank3 * 'a Type_functions.z | `three of 'dim3 * 'rank3 * 'b Type_functions.three * 'a Type_functions.one | `two of 'dim3 * 'rank3 * 'b Type_functions.two * 'a Type_functions.one ] ] * 'rank2 * [< `one of 'dim1 * 'len * 'dim3 * [< `four of 'dim1 * 'rank3 * 'a Type_functions.four * 'b Type_functions.two | `one of 'rank3 * 'a Type_functions.one | `three of 'dim1 * 'rank3 * 'a Type_functions.three * 'b Type_functions.two | `two of 'dim1 * 'rank3 * 'a Type_functions.two * 'b Type_functions.two ] | `two of 'len * [< `four of 'dim3 * 'rank3 * 'b Type_functions.four * 'a Type_functions.one | `one of 'rank3 * 'a Type_functions.z | `three of 'dim3 * 'rank3 * 'b Type_functions.three * 'a Type_functions.one | `two of 'dim3 * 'rank3 * 'b Type_functions.two * 'a Type_functions.one ] ] ], 'rank2, 'rank3, 'dim1, 'dim3, 'len, 'a * 'b) Type_functions.superindexing) t ‑> ('dim1, 'len, 'rank2, 'group) index ‑> ('dim3, 'rank3) tval (.%[]) : ('dim1, ([< `one of 'len * [< `four of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.four | `one of 'rank3 * 'a Type_functions.z | `three of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.three | `two of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.two ] * 'len * [< `four of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.four | `one of 'rank3 * 'a Type_functions.z | `three of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.three | `two of 'rank3 * 'dim3 * 'a Type_functions.one * 'b Type_functions.two ] | `two of 'rank2 * [< `one of 'dim1 * 'len * 'dim3 * [< `four of 'dim1 * 'rank3 * 'a Type_functions.four * 'b Type_functions.two | `one of 'rank3 * 'a Type_functions.one | `three of 'dim1 * 'rank3 * 'a Type_functions.three * 'b Type_functions.two | `two of 'dim1 * 'rank3 * 'a Type_functions.two * 'b Type_functions.two ] | `two of 'len * [< `four of 'dim3 * 'rank3 * 'b Type_functions.four * 'a Type_functions.one | `one of 'rank3 * 'a Type_functions.z | `three of 'dim3 * 'rank3 * 'b Type_functions.three * 'a Type_functions.one | `two of 'dim3 * 'rank3 * 'b Type_functions.two * 'a Type_functions.one ] ] * 'rank2 * [< `one of 'dim1 * 'len * 'dim3 * [< `four of 'dim1 * 'rank3 * 'a Type_functions.four * 'b Type_functions.two | `one of 'rank3 * 'a Type_functions.one | `three of 'dim1 * 'rank3 * 'a Type_functions.three * 'b Type_functions.two | `two of 'dim1 * 'rank3 * 'a Type_functions.two * 'b Type_functions.two ] | `two of 'len * [< `four of 'dim3 * 'rank3 * 'b Type_functions.four * 'a Type_functions.one | `one of 'rank3 * 'a Type_functions.z | `three of 'dim3 * 'rank3 * 'b Type_functions.three * 'a Type_functions.one | `two of 'dim3 * 'rank3 * 'b Type_functions.two * 'a Type_functions.one ] ] ], 'rank2, 'rank3, 'dim1, 'dim3, 'len, 'a * 'b) Type_functions.superindexing) t ‑> ('dim1, 'len, 'rank2, 'group) index ‑> ('dim3, 'rank3) tval get : ('dim, 'rank) t ‑> ('dim, 'a Type_functions.one, 'rank, 'group) index ‑> Interface.kval (.%()) : ('dim, 'rank) t ‑> ('dim, 'a Type_functions.one, 'rank, 'group) index ‑> Interface.kval eye : 'a dim ‑> ('a, 'b Type_functions.two) tval diag : ('dim, 'a Type_functions.one) t ‑> ('dim, 'b Type_functions.two) tval rotation : ('dim, 'a Type_functions.one) t ‑> ('dim, 'b Type_functions.one) t ‑> Interface.k ‑> ('dim, 'c Type_functions.two) tval rank_match : [< `one of 'b * 'r | `two of 'c * 'r | `zero of 'a * 'r ] rank ‑> ('d Type_functions.z rank ‑> 'a) ‑> ('e Type_functions.one rank ‑> 'b) ‑> ('f Type_functions.two rank ‑> 'c) ‑> 'rval dim_match : [< `four of 'd * 'r | `one of 'a * 'r | `three of 'c * 'r | `two of 'b * 'r ] dim ‑> ('e Type_functions.one dim ‑> 'a) ‑> ('f Type_functions.two dim ‑> 'b) ‑> ('g Type_functions.three dim ‑> 'c) ‑> ('h Type_functions.four dim ‑> 'd) ‑> 'rval clone_2 : ([< `four of 'dim1 * 'dim2 * 'a Type_functions.four * 'b Type_functions.four | `one of 'dim1 * 'dim2 * 'c Type_functions.one * 'd Type_functions.one | `three of 'dim1 * 'dim2 * 'e Type_functions.three * 'f Type_functions.three | `two of 'dim1 * 'dim2 * 'g Type_functions.two * 'h Type_functions.two ], [< `one of 'rank1 * 'rank2 * 'i Type_functions.one * 'j Type_functions.one | `two of 'rank1 * 'rank2 * 'k Type_functions.two * 'l Type_functions.two | `zero of 'rank1 * 'rank2 * 'm Type_functions.z * 'n Type_functions.z ]) t ‑> ('dim1, 'rank1) t * ('dim2, 'rank2) tval clone_3 : ([< `four of 'dim1 * 'dim2 * 'dim3 * 'a Type_functions.four * 'b Type_functions.four * 'c Type_functions.four | `one of 'dim1 * 'dim2 * 'dim3 * 'd Type_functions.one * 'e Type_functions.one * 'f Type_functions.one | `three of 'dim1 * 'dim2 * 'dim3 * 'g Type_functions.three * 'h Type_functions.three * 'i Type_functions.three | `two of 'dim1 * 'dim2 * 'dim3 * 'j Type_functions.two * 'k Type_functions.two * 'l Type_functions.two ], [< `one of 'rank1 * 'rank2 * 'rank3 * 'm Type_functions.one * 'n Type_functions.one * 'o Type_functions.one | `two of 'rank1 * 'rank2 * 'rank3 * 'p Type_functions.two * 'q Type_functions.two * 'r Type_functions.two | `zero of 'rank1 * 'rank2 * 'rank3 * 's Type_functions.z * 't Type_functions.z * 'u Type_functions.z ]) t ‑> ('dim1, 'rank1) t * ('dim2, 'rank2) t * ('dim3, 'rank3) tval clone_7 : ([< `four of 'dim1 * 'dim2 * 'dim3 * 'dim4 * 'dim5 * 'dim6 * 'dim7 * 'a Type_functions.four * 'b Type_functions.four * 'c Type_functions.four * 'd Type_functions.four * 'e Type_functions.four * 'f Type_functions.four * 'g Type_functions.four | `one of 'dim1 * 'dim2 * 'dim3 * 'dim4 * 'dim5 * 'dim6 * 'dim7 * 'h Type_functions.one * 'i Type_functions.one * 'j Type_functions.one * 'k Type_functions.one * 'l Type_functions.one * 'm Type_functions.one * 'n Type_functions.one | `three of 'dim1 * 'dim2 * 'dim3 * 'dim4 * 'dim5 * 'dim6 * 'dim7 * 'o Type_functions.three * 'p Type_functions.three * 'q Type_functions.three * 'r Type_functions.three * 's Type_functions.three * 't Type_functions.three * 'u Type_functions.three | `two of 'dim1 * 'dim2 * 'dim3 * 'dim4 * 'dim5 * 'dim6 * 'dim7 * 'v Type_functions.two * 'w Type_functions.two * 'x Type_functions.two * 'y Type_functions.two * 'z Type_functions.two * 'a1 Type_functions.two * 'b1 Type_functions.two ], [< `one of 'rank1 * 'rank2 * 'rank3 * 'rank4 * 'rank5 * 'rank6 * 'rank7 * 'c1 Type_functions.one * 'd1 Type_functions.one * 'e1 Type_functions.one * 'f1 Type_functions.one * 'g1 Type_functions.one * 'h1 Type_functions.one * 'i1 Type_functions.one | `two of 'rank1 * 'rank2 * 'rank3 * 'rank4 * 'rank5 * 'rank6 * 'rank7 * 'j1 Type_functions.two * 'k1 Type_functions.two * 'l1 Type_functions.two * 'm1 Type_functions.two * 'n1 Type_functions.two * 'o1 Type_functions.two * 'p1 Type_functions.two | `zero of 'rank1 * 'rank2 * 'rank3 * 'rank4 * 'rank5 * 'rank6 * 'rank7 * 'q1 Type_functions.z * 'r1 Type_functions.z * 's1 Type_functions.z * 't1 Type_functions.z * 'u1 Type_functions.z * 'v1 Type_functions.z * 'w1 Type_functions.z ]) t ‑> ('dim1, 'rank1) t * ('dim2, 'rank2) t * ('dim3, 'rank3) t * ('dim4, 'rank4) t * ('dim5, 'rank5) t * ('dim6, 'rank6) t * ('dim7, 'rank7) t