shithub: MicroHs

Download patch

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