-import NumericPrelude hiding (abs)
-import Algebra.Absolute (abs)
-import qualified Algebra.Absolute as Absolute
-import qualified Algebra.Algebraic as Algebraic
-import qualified Algebra.RealField as RealField
-import qualified Algebra.RealRing as RealRing
-import qualified Algebra.ToInteger as ToInteger
-
--- Since the norm is defined on a vector space, we should be able to
--- add and subtract anything on which a norm is defined. Of course
--- 'Num' is a bad choice here, but we really prefer to use the normal
--- addition and subtraction operators.
+-- Ensure that we don't use the Lattice.C "max" function, that
+-- only works on Integer/Bool.
+import NumericPrelude hiding ( abs, max )
+import Algebra.Absolute ( abs )
+import qualified Algebra.Absolute as Absolute ( C )
+import qualified Algebra.Algebraic as Algebraic ( C )
+import Algebra.Algebraic ( root )
+import qualified Algebra.RealField as RealField ( C )
+import qualified Algebra.ToInteger as ToInteger ( C )
+import qualified Algebra.ToRational as ToRational ( C )
+import qualified Data.Vector.Fixed as V (
+ Arity,
+ foldl,
+ map )
+import Data.Vector.Fixed.Boxed ( Vec )
+import qualified Prelude as P ( max )
+import Linear.Vector ( element_sum )
+
+
+-- | Instances of the 'Normed' class know how to compute their own
+-- p-norms for p=1,2,...,infinity.
+--