From e83e2023da77ecaa9aaba15bc9bd48757f73b3a9 Mon Sep 17 00:00:00 2001 From: Hiromi ISHII Date: Mon, 25 Dec 2017 20:23:13 +0900 Subject: Workaround for GHC-8.4.x * Adds missing Semigroup instances * Adds `semigroups` to the deps of `hmatrix` * Hides conflicting names from import list with base >= 4.11 * `(Prelude.<>)` and `GHC.TypeNats.Mod` --- packages/base/src/Numeric/Matrix.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'packages/base/src/Numeric/Matrix.hs') diff --git a/packages/base/src/Numeric/Matrix.hs b/packages/base/src/Numeric/Matrix.hs index 5400f26..06da150 100644 --- a/packages/base/src/Numeric/Matrix.hs +++ b/packages/base/src/Numeric/Matrix.hs @@ -32,8 +32,11 @@ import Internal.Element import Internal.Numeric import qualified Data.Monoid as M import Data.List(partition) +import qualified Data.Foldable as F +import qualified Data.Semigroup as S import Internal.Chain + ------------------------------------------------------------------- instance Container Matrix a => Eq (Matrix a) where @@ -84,6 +87,11 @@ adaptScalarM f1 f2 f3 x y | isScalar y = f3 x (y @@>(0,0) ) | otherwise = f2 x y +instance (Container Vector t, Eq t, Num (Vector t), Product t) => S.Semigroup (Matrix t) + where + (<>) = mappend + sconcat = mconcat . F.toList + instance (Container Vector t, Eq t, Num (Vector t), Product t) => M.Monoid (Matrix t) where mempty = 1 -- cgit v1.2.3