ref: ed503327c9f3803c30c28662b97069ac5378dc88
parent: 316ee67a265052063d1ea4e4f329655d0802471e
author: Lennart Augustsson <lennart@augustsson.net>
date: Wed Sep 25 20:11:04 EDT 2024
More functions
--- a/TODO
+++ b/TODO
@@ -46,3 +46,4 @@
* missing import in Text.Read.Internal gmhs: expandDict: Data.Floating.Floating
* export list in -boot doesn't work
* Cannot derive Show for 'newtype Alt f a = Alt (f a)'
+* Fundep bug mtl:Control/Monad/RWS/Class.hs
--- a/lib/Control/Monad.hs
+++ b/lib/Control/Monad.hs
@@ -41,7 +41,7 @@
import Data.Bool
import Data.Char_Type
import Data.Function
-import Data.Functor
+import Data.Functor hiding(unzip)
import Data.List
import Data.Monoid.Internal
import Data.Ord
--- a/lib/Data/Functor.hs
+++ b/lib/Data/Functor.hs
@@ -1,4 +1,11 @@
-module Data.Functor(module Data.Functor) where
+module Data.Functor(
+ Functor(..),
+ ($>),
+ (<$>),
+ (<&>),
+ unzip,
+ void,
+ ) where
import Prelude() -- do not import Prelude
import Primitives -- for fixity
import Data.Function
@@ -11,6 +18,18 @@
infixl 4 <$>
(<$>) :: forall f a b . Functor f => (a -> b) -> f a -> f b
(<$>) = fmap
+
+infixl 1 <&>
+(<&>) :: Functor f => f a -> (a -> b) -> f b
+(<&>) = flip (<$>)
+
+infixl 4 $>
+($>) :: Functor f => f a -> b -> f b
+($>) = flip (<$)
+
+unzip :: Functor f => f (a, b) -> (f a, f b)
+unzip xs = ( (\(a,_)->a) <$> xs,
+ (\(_,b)->b) <$> xs )
void :: forall f a . Functor f => f a -> f ()
void = fmap (const ())
--- a/lib/Data/List.hs
+++ b/lib/Data/List.hs
@@ -34,7 +34,7 @@
import Data.Char
import Data.Eq
import Data.Function
-import Data.Functor
+import Data.Functor hiding(unzip)
import Data.Int
import Data.Integral
import Data.List_Type
--- a/lib/Data/List/NonEmpty.hs
+++ b/lib/Data/List/NonEmpty.hs
@@ -109,7 +109,7 @@
import Data.Foldable hiding (length, toList)
import qualified Data.Foldable as Foldable
import Data.Function
-import Data.Functor
+import Data.Functor hiding(unzip)
import Data.Int
import qualified Data.List as List
import Data.List_Type