úÎòÕSafe357ÿœTensor allows us to define a relationship between two types, the second one forming a Group. The intuition is that the first type models something like a "location", and the second (the group) models the relative distance between two locations. Examples of Tensors include date/time values (point in time) and timespans; positions in a vector space and displacement vectors; pitches and intervals in music."Tensor provides three operations: < ("tensor addition"), adding a "distance" to a "location"; Y ("tensor subtraction"), undoing the effect of adding a "distance" to a "location", and 2, getting the "distance" between two "locations".Laws: pa ?<> (b >?< a) == b a ?<> (x <> y) == a ?<> x ?<> y a ?>< b == a ?<> (invert b) a ?<> (x >< y) == a ?<> x ?>< y:A group is a monoid with an invert operation. Intuition:  is to " what subtraction is to addition; d turns a value into its complement (see Laws below), and corresponds with unary minus in addition.Laws: ma >< b == a <> (invert b) a >< mempty == a a >< a == mempty a <> (invert a) == mempty invert mempty == memptyDual to .-"Negation": convert an operand into its dual.1All groups trivially form tensors with themselves  '  !"#$%&'( )                              ! " # $%datat_59HYpkK00i1ENdAiDEGacc Data.TensorTensor?<>?><>?<Group><invertbase Data.Monoid<> $fTensoraa $fGroupSumgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastgetAltAltGHC.BasemconcatmappendmemptyMonoid