- | The cross product of @v0@ and @v1@.
cross :: T -> T -> T
cross (V3 x0 y0 z0) (V3 x1 y1 z1) =
  let
    x = (y0 * z1) - (z0 * y1)
    y = (z0 * x1) - (x0 * z1)
    z = (x0 * y1) - (y0 * x1)
  in
    V3 x y z

cross :: T -> T -> T
cross (V3 x0 y0 z0) (V3 x1 y1 z1) =
  let
    x = (y0 * z1) - (z0 * y1)
    y = (z0 * x1) - (x0 * z1)
    z = (x0 * y1) - (y0 * x1)
  in
    V3 x y z
cross (V3 x0 y0 z0) (V3 x1 y1 z1) =
  let
    x = (y0 * z1) - (z0 * y1)
    y = (z0 * x1) - (x0 * z1)
    z = (x0 * y1) - (y0 * x1)
  in
    V3 x y z