[GHC] #12556: `stimes` adds extra power to Semigroup

GHC ghc-devs at haskell.org
Wed Aug 31 17:34:48 UTC 2016


#12556: `stimes` adds extra power to Semigroup
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:
            Type:  task              |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  libraries/base    |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect result  |  Unknown/Multiple
  at runtime                         |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Description changed by Iceland_jack:

@@ -4,1 +4,1 @@
- }}}
+

New description:

 {{{
 ghci> stimes 0 (undefined :: [_])
 []

 ghci> stimes 0 undefined
 ()
 }}}

 makes it seem like `stimes 0` has some knowledge about `mempty` from
 `Monoid` but it has the following type

 {{{#!hs
 stimes 0 :: Semigroup a => a -> a
 }}}

 Desired behaviour? Given that type (assuming it only has the power of
 `<>`) I would have assumed this behaviour

 {{{
 ghci> data L a = N | C a (L a) deriving Show
 ghci> instance Semigroup (L a) where (<>) = undefined
 ghci|
 ghci> stimes 0 (undefined :: L _)
 *** Exception: stimes: positive multiplier expected
 }}}

--

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12556#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list