Skip to content

Commit f8da0b9

Browse files
committed
Revert "Replace ++ with Semigroup in Prelude"
This reverts commit d9a1d43.
1 parent d9a1d43 commit f8da0b9

File tree

5 files changed

+9
-28
lines changed

5 files changed

+9
-28
lines changed

examples/passing/Operators.purs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ module Main where
44
import Control.Monad.Eff
55
import Debug.Trace
66

7-
bar :: String -> String -> String
87
bar = \s1 s2 -> s1 ++ s2
98

109
test1 :: forall n. (Num n) => n -> n -> (n -> n -> n) -> n
@@ -27,6 +26,8 @@ module Main where
2726

2827
test6 = ((\x -> x) `k` 2) 3
2928

29+
(<>) = \s1 s2 -> s1 ++ s2
30+
3031
test7 = "Hello" <> "World!"
3132

3233
(@@) :: forall a b. (a -> b) -> a -> b

prelude/prelude.purs

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -325,25 +325,13 @@ module Prelude where
325325
(||) = boolOr
326326
not = boolNot
327327

328-
infixr 6 <>
329-
330-
class Semigroup s where
331-
(<>) :: s -> s -> s
332-
333328
infixr 5 ++
334329

335-
(++) :: forall s. (Semigroup s) => s -> s -> s
336-
(++) = (<>)
337-
338-
foreign import concatString
339-
"function concatString(s1) {\
340-
\ return function(s2) {\
341-
\ return s1 + s2;\
342-
\ };\
343-
\}" :: String -> String -> String
344-
345-
instance semigroupString :: Semigroup String where
346-
(<>) = concatString
330+
foreign import (++) "function $plus$plus(s1) {\
331+
\ return function(s2) {\
332+
\ return s1 + s2;\
333+
\ };\
334+
\}" :: String -> String -> String
347335

348336
module Data.Eq where
349337

src/Language/PureScript/Constants.hs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ module Language.PureScript.Constants where
2929
(++) :: String
3030
(++) = "++"
3131

32-
(<>) :: String
33-
(<>) = "<>"
34-
3532
(>>=) :: String
3633
(>>=) = ">>="
3734

@@ -149,9 +146,6 @@ pokeSTArray = "pokeSTArray"
149146
monadEffDictionary :: String
150147
monadEffDictionary = "monadEff"
151148

152-
semigroupString :: String
153-
semigroupString = "semigroupString"
154-
155149
numNumber :: String
156150
numNumber = "numNumber"
157151

src/Language/PureScript/Optimizer.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ optimize opts | optionsNoOptimizations opts = id
6464
, inlineOperator (C.$) $ \f x -> JSApp f [x]
6565
, inlineOperator (C.#) $ \x f -> JSApp f [x]
6666
, inlineOperator (C.!!) $ flip JSIndexer
67+
, inlineOperator (C.++) $ JSBinary Add
6768
, inlineCommonOperators ]
6869

6970
untilFixedPoint :: (Eq a) => (a -> a) -> a -> a

src/Language/PureScript/Optimizer/Inliner.hs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ inlineOperator op f = everywhere (mkT convert)
8383

8484
inlineCommonOperators :: JS -> JS
8585
inlineCommonOperators = applyAll
86-
[ binary C.semigroupString (C.++) Add
87-
, binary C.semigroupString (C.<>) Add
88-
89-
, binary C.numNumber (C.+) Add
86+
[ binary C.numNumber (C.+) Add
9087
, binary C.numNumber (C.-) Subtract
9188
, binary C.numNumber (C.*) Multiply
9289
, binary C.numNumber (C./) Divide

0 commit comments

Comments
 (0)