packages feed

hydrogen-prelude 0.15 → 0.16

raw patch · 4 files changed

+98/−19 lines, 4 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

- Hydrogen.Prelude: instance Apply ((a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f)
- Hydrogen.Prelude: instance Apply ((a -> b -> c -> d -> e) -> (a, b, c, d) -> e)
- Hydrogen.Prelude: instance Apply ((a -> b -> c -> d) -> (a, b, c) -> d)
- Hydrogen.Prelude: instance Apply ((a -> b -> c) -> (a, b) -> c)
- Hydrogen.Prelude: instance Apply ((a -> b) -> a -> b)
- Hydrogen.Prelude: instance Functor f => Apply ((a -> b -> c -> d -> e -> z) -> f (a, b, c, d, e) -> f z)
- Hydrogen.Prelude: instance Functor f => Apply ((a -> b -> c -> d -> e) -> f (a, b, c, d) -> f e)
- Hydrogen.Prelude: instance Functor f => Apply ((a -> b -> c -> d) -> f (a, b, c) -> f d)
- Hydrogen.Prelude: instance Functor f => Apply ((a -> b -> c) -> f (a, b) -> f c)
- Hydrogen.Prelude: instance Functor f => Apply ((a -> b) -> f a -> f b)
+ Hydrogen.Prelude: ($$$$$) :: (a -> b -> c -> d -> e -> z) -> (a, b, c, d, e) -> z
+ Hydrogen.Prelude: ($$$$) :: (a -> b -> c -> d -> z) -> (a, b, c, d) -> z
+ Hydrogen.Prelude: ($$$) :: (a -> b -> c -> z) -> (a, b, c) -> z
+ Hydrogen.Prelude: ($$) :: (a -> b -> z) -> (a, b) -> z
+ Hydrogen.Prelude: (<$$$$$>) :: Functor f => (a -> b -> c -> d -> e -> z) -> f (a, b, c, d, e) -> f z
+ Hydrogen.Prelude: (<$$$$>) :: Functor f => (a -> b -> c -> d -> z) -> f (a, b, c, d) -> f z
+ Hydrogen.Prelude: (<$$$>) :: Functor f => (a -> b -> c -> z) -> f (a, b, c) -> f z
+ Hydrogen.Prelude: (<$$>) :: Functor f => (a -> b -> z) -> f (a, b) -> f z
+ Hydrogen.Prelude: instance (Functor f, Applicator (f (a, b)) (f z) ~ (a -> b -> z)) => Apply (f (a, b)) (f z)
+ Hydrogen.Prelude: instance (Functor f, Applicator (f (a, b, c)) (f z) ~ (a -> b -> c -> z)) => Apply (f (a, b, c)) (f z)
+ Hydrogen.Prelude: instance (Functor f, Applicator (f (a, b, c, d)) (f z) ~ (a -> b -> c -> d -> z)) => Apply (f (a, b, c, d)) (f z)
+ Hydrogen.Prelude: instance (Functor f, Applicator (f (a, b, c, d, e)) (f z) ~ (a -> b -> c -> d -> e -> z)) => Apply (f (a, b, c, d, e)) (f z)
+ Hydrogen.Prelude: instance (Functor f, Applicator (f a) (f z) ~ (a -> z)) => Apply (f a) (f z)
+ Hydrogen.Prelude: instance Applicator a z ~ (a -> z) => Apply a z
+ Hydrogen.Prelude: instance Apply (a, b) z
+ Hydrogen.Prelude: instance Apply (a, b, c) z
+ Hydrogen.Prelude: instance Apply (a, b, c, d) z
+ Hydrogen.Prelude: instance Apply (a, b, c, d, e) z
- Hydrogen.Prelude: (*$*) :: Apply a => a
+ Hydrogen.Prelude: (*$*) :: Apply x z => Applicator x z -> x -> z
- Hydrogen.Prelude: class Apply a
+ Hydrogen.Prelude: class Apply x z
- Hydrogen.Prelude: uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
+ Hydrogen.Prelude: uncurry3 :: (a -> b -> c -> z) -> (a, b, c) -> z
- Hydrogen.Prelude: uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
+ Hydrogen.Prelude: uncurry4 :: (a -> b -> c -> d -> z) -> (a, b, c, d) -> z
- Hydrogen.Prelude: uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f
+ Hydrogen.Prelude: uncurry5 :: (a -> b -> c -> d -> e -> z) -> (a, b, c, d, e) -> z

Files

CHANGELOG.md view
@@ -69,7 +69,24 @@  ## v0.11 + Added `nicify` form `Text.Nicify`-+ Upgraded dependency `hydrogen-version` form `>=1.2` to `>=1.3`++ Upgraded dependency `hydrogen-version` from `>=1.2` to `>=1.3`  ## v0.12 + Added `Default`++## v0.13++ _Skipped_++## v0.14++ Aligned with other `hydrogen-*` packages++## v0.15++ Added `Apply`++ Added `uncurry3`, `uncurry4`, `uncurry5`++## v0.16++ Changed `Apply` to use `-XMultiParamTypeClasses` and `-XTypeFamilies`++ Added `$$`, `$$$`, `$$$$`, `$$$$$` (lile `uncurryN`)++ Added `<$$>`, `<$$$>`, `<$$$$>`, `<$$$$$>` (like `<$>` and `uncurryN`)++
README.md view
@@ -1,6 +1,8 @@ hydrogen-prelude ================ +[![Build Status](https://travis-ci.org/scravy/hydrogen-prelude.svg?branch=master)](https://travis-ci.org/scravy/hydrogen-prelude)+ + [`about`](#about)   + [`scravy.de/hydrogen-prelude`](http://scravy.de/hydrogen-prelude)   + [`hackage.haskell.org/package/hydrogen-prelude`](http://hackage.haskell.org/package/hydrogen-prelude)
hydrogen-prelude.cabal view
@@ -1,5 +1,5 @@ name:                 hydrogen-prelude-version:              0.15+version:              0.16 homepage:             http://scravy.de/hydrogen-prelude/ synopsis:             Hydrogen Prelude license:              MIT@@ -20,7 +20,7 @@                       , Hydrogen.Prelude.IO                       , Hydrogen.Prelude.Network                       , Hydrogen.Prelude.System-  build-depends:      base ==4.7.*+  build-depends:      base >=4.6 && <5                       , array ==0.5.*                       , cereal ==0.4.*                       , containers ==0.5.*@@ -53,6 +53,7 @@                       , FlexibleContexts                       , GADTs                       , LambdaCase+                      , MultiParamTypeClasses                       , MultiWayIf                       , NegativeLiterals                       , NoImplicitPrelude
src/Hydrogen/Prelude.hs view
@@ -41,6 +41,14 @@   , (=~)   , (=~~)   , (|>)+  , ($$)+  , ($$$)+  , ($$$$)+  , ($$$$$)+  , (<$$>)+  , (<$$$>)+  , (<$$$$>)+  , (<$$$$$>)   , uuidFromString   , randomUUID   , nicify@@ -65,6 +73,7 @@   , Container (..)   , Default (..)   , Apply (..)+  , Applicator   , __   ) where @@ -427,57 +436,107 @@ instance MonadPlus m => Default (m a) where def = mzero  -class Apply a where+type family Applicator a b where -    (*$*) :: a+    Applicator (a, b, c, d, e) z = (a -> b -> c -> d -> e -> z)+    Applicator (a, b, c, d) z = (a -> b -> c -> d -> z)+    Applicator (a, b, c) z = (a -> b -> c -> z)+    Applicator (a, b) z = (a -> b -> z) +    Applicator (f (a, b, c, d, e)) (f z) = (a -> b -> c -> d -> e -> z)+    Applicator (f (a, b, c, d)) (f z) = (a -> b -> c -> d -> z)+    Applicator (f (a, b, c)) (f z) = (a -> b -> c -> z)+    Applicator (f (a, b)) (f z) = (a -> b -> z)+    Applicator (f a) (f z) = (a -> z) -instance Apply ((a -> b) -> a -> b) where+    Applicator x z = (x -> z) ++class Apply x z where++    (*$*) :: Applicator x z -> x -> z++instance (Applicator a z ~ (a -> z)) => Apply a z where+     (*$*) = ($) -instance Apply ((a -> b -> c) -> (a, b) -> c) where+instance Apply (a, b) z where      (*$*) = uncurry -instance Apply ((a -> b -> c -> d) -> (a, b, c) -> d) where+instance Apply (a, b, c) z where      (*$*) = uncurry3 -instance Apply ((a -> b -> c -> d -> e) -> (a, b, c, d) -> e) where+instance Apply (a, b, c, d) z where      (*$*) = uncurry4 -instance Apply ((a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f) where+instance Apply (a, b, c, d, e) z where      (*$*) = uncurry5 -instance Functor f => Apply ((a -> b) -> f a -> f b) where+instance (Functor f, Applicator (f a) (f z) ~ (a -> z))+    => Apply (f a) (f z) where -    (*$*) = fmap+    (*$*) = fmap . ($) -instance Functor f => Apply ((a -> b -> c) -> f (a, b) -> f c) where+instance (Functor f, Applicator (f (a, b)) (f z) ~ (a -> b -> z))+    => Apply (f (a, b)) (f z) where      (*$*) = fmap . uncurry -instance Functor f => Apply ((a -> b -> c -> d) -> f (a, b, c) -> f d) where+instance (Functor f, Applicator (f (a, b, c)) (f z) ~ (a -> b -> c -> z))+    => Apply (f (a, b, c)) (f z) where      (*$*) = fmap . uncurry3 -instance Functor f => Apply ((a -> b -> c -> d -> e) -> f (a, b, c, d) -> f e) where+instance (Functor f, Applicator (f (a, b, c, d)) (f z) ~ (a -> b -> c -> d -> z))+    => Apply (f (a, b, c, d)) (f z) where      (*$*) = fmap . uncurry4 -instance Functor f => Apply ((a -> b -> c -> d -> e -> z) -> f (a, b, c, d, e) -> f z) where+instance (Functor f, Applicator (f (a, b, c, d, e)) (f z) ~ (a -> b -> c -> d -> e -> z))+    => Apply (f (a, b, c, d, e)) (f z) where      (*$*) = fmap . uncurry5 -uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d++infixr 0 $$+infixr 0 $$$+infixr 0 $$$$+infixr 0 $$$$$++($$) :: (a -> b -> z) -> (a, b) -> z+($$) = uncurry++($$$), uncurry3 :: (a -> b -> c -> z) -> (a, b, c) -> z uncurry3 f (a, b, c) = f a b c+($$$) = uncurry3 -uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e+($$$$), uncurry4 :: (a -> b -> c -> d -> z) -> (a, b, c, d) -> z uncurry4 f (a, b, c, d) = f a b c d+($$$$) = uncurry4 -uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f+($$$$$), uncurry5 :: (a -> b -> c -> d -> e -> z) -> (a, b, c, d, e) -> z uncurry5 f (a, b, c, d, e) = f a b c d e+($$$$$) = uncurry5+++infixl 4 <$$>+infixl 4 <$$$>+infixl 4 <$$$$>+infixl 4 <$$$$$>++(<$$>) :: Functor f => (a -> b -> z) -> f (a, b) -> f z+(<$$>) = (<$>) . uncurry++(<$$$>) :: Functor f => (a -> b -> c -> z) -> f (a, b, c) -> f z+(<$$$>) = (<$>) . uncurry3++(<$$$$>) :: Functor f => (a -> b -> c -> d -> z) -> f (a, b, c, d) -> f z+(<$$$$>) = (<$>) . uncurry4++(<$$$$$>) :: Functor f => (a -> b -> c -> d -> e -> z) -> f (a, b, c, d, e) -> f z+(<$$$$$>) = (<$>) . uncurry5