I'm not sure what "sound" means if the documentation[1] for Num states that the only reasonable expectation is that of a ring.<div><br /></div><div><br /></div>However, if we are to have laws for signum and abs, then I would expect that 'abs n = n * signum n'. My definitions satisfy that law.<div><br /></div>Furthermore for polynomials, I don't think there is a useful definition of 'abs' where 'abs n' has a higher degree than 'n' itself. Assuming that 'abs' does not increase the degree, I don't think there are any other _useful_ definitions of abs and signum than the ones I gave: multiplication in Z[X] will never decrease the degree, so the degree of 'n * signum n' is at least that of 'n', and therefore the degree of 'abs n' is the same as that of 'n'; therefore 'signum n' is a constant polynomial (without X'es). With that restriction the only reasonable choice I see is 'signum = const 1'.<div><br /></div><div><br /></div>But even if you take 'abs' and 'signum' to be absolutely wild functions, to be able to write n*(n+1)/2 you need to define your division operator. There is certainly not one in base that will work for 'Int -> Int' as well as 'Float -> Float' as well as 'Poly Integer -> Poly Integer'. And in particular not abs nor signum. :)<div><br /></div><div><br /></div>- Tom<div><br /></div><div><br /></div>[1]: <a href="https://hackage.haskell.org/package/base-4.14.1.0/docs/Prelude.html#t:Num">https://hackage.haskell.org/package/base-4.14.1.0/docs/Prelude.html#t:Num</a><div><br /></div><div><br /></div>-------- Original Message --------<div><br /></div>On 16 Dec 2020, 23:26, Henning Thielemann < lemming@henning-thielemann.de> wrote:<div><br /></div><div><br /></div>On Wed, 16 Dec 2020, Tom Smeding wrote:<div><br /></div>> @Douglas:<div><br /></div>> What about the ring of polynomials over the integers, i.e. Z[X]? We can certainly define a Num instance for that<div><br /></div>> if we set 'signum _ = 1' and 'abs = id'. 'fromInteger' then injects constant polynomials.<div><br /></div>I also thought about polynomials, but Num is a Ring plus 'signum' and<div><br /></div>'abs'. Are your definitions ob 'signum' and 'abs' sound? Are there other<div><br /></div>sound definitions that may allow the n*(n+1)/2 magic?<div><br /></div>