diff --git AC-Vector.cabal AC-Vector.cabal index ddb9e39..5081d1b 100644 --- AC-Vector.cabal +++ AC-Vector.cabal @@ -1,6 +1,6 @@ Cabal-Version: >= 1.6 Name: AC-Vector -Version: 2.3.2 +Version: 2.4.0 x-revision: 1 Stability: Experimental Synopsis: Efficient geometric vectors and transformations. @@ -44,5 +44,5 @@ Library Data.BoundingBox.B2, Data.BoundingBox.B3, Data.BoundingBox.B4 - Build-Depends: base >= 4 && < 5 + Build-Depends: base >= 4.9 && < 5 HS-Source-Dirs: . diff --git Data/Vector/Transform/T1.hs Data/Vector/Transform/T1.hs index bc892a8..9c66b33 100644 --- Data/Vector/Transform/T1.hs +++ Data/Vector/Transform/T1.hs @@ -4,6 +4,7 @@ module Data.Vector.Transform.T1 where +import Data.Semigroup import Data.Monoid import Data.Vector.Class @@ -23,7 +24,9 @@ data Transform1 = instance Monoid Transform1 where mempty = Transform1 1 0 - mappend a b = + +instance Semigroup Transform1 where + a <> b = Transform1 { t1_XX = t1_XX a * t1_XX b, diff --git Data/Vector/Transform/T2.hs Data/Vector/Transform/T2.hs index 1011935..5fce79a 100644 --- Data/Vector/Transform/T2.hs +++ Data/Vector/Transform/T2.hs @@ -4,6 +4,7 @@ module Data.Vector.Transform.T2 where +import Data.Semigroup import Data.Monoid import Data.Vector.Class @@ -24,7 +25,9 @@ data Transform2 = instance Monoid Transform2 where mempty = Transform2 1 0 0 0 1 0 - mappend a b = + +instance Semigroup Transform2 where + a <> b = Transform2 { t2_XX = t2_XX a * t2_XX b + t2_XY a * t2_YX b, diff --git Data/Vector/Transform/T3.hs Data/Vector/Transform/T3.hs index 486eadf..2bed2ed 100644 --- Data/Vector/Transform/T3.hs +++ Data/Vector/Transform/T3.hs @@ -4,6 +4,7 @@ module Data.Vector.Transform.T3 where +import Data.Semigroup import Data.Monoid import Data.Vector.Class @@ -25,7 +26,9 @@ data Transform3 = instance Monoid Transform3 where mempty = Transform3 1 0 0 0 0 1 0 0 0 0 1 0 - mappend a b = + +instance Semigroup Transform3 where + a <> b = Transform3 { t3_XX = t3_XX a * t3_XX b + t3_XY a * t3_YX b + t3_XZ a * t3_ZX b, diff --git Data/Vector/Transform/T4.hs Data/Vector/Transform/T4.hs index ec57a08..c68b4da 100644 --- Data/Vector/Transform/T4.hs +++ Data/Vector/Transform/T4.hs @@ -4,6 +4,7 @@ module Data.Vector.Transform.T4 where +import Data.Semigroup import Data.Monoid import Data.Vector.Class @@ -26,7 +27,9 @@ data Transform4 = instance Monoid Transform4 where mempty = Transform4 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 - mappend a b = + +instance Semigroup Transform4 where + a <> b = Transform4 { t4_XX = t4_XX a * t4_XX b + t4_XY a * t4_YX b + t4_XZ a * t4_ZX b + t4_XW a * t4_WX b,