packages feed

contravariant-extras 0.3.5 → 0.3.5.1

raw patch · 8 files changed

+163/−88 lines, 8 filesdep +template-haskell-compat-v0208dep −base-preludedep −semigroupsdep −tuple-thdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: template-haskell-compat-v0208

Dependencies removed: base-prelude, semigroups, tuple-th

Dependency ranges changed: base

API changes (from Hackage documentation)

- Contravariant.Extras.Eliminate: eliminate2 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)
- Contravariant.Extras.Eliminate: eliminate3 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)
- Contravariant.Extras.Eliminate: eliminate4 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)
- Contravariant.Extras.Eliminate: eliminate5 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)
- Contravariant.Extras.Eliminate: eliminate6 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> f (a1, a2, a3, a4, a5, a6)
- Contravariant.Extras.Eliminate: eliminate7 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> f (a1, a2, a3, a4, a5, a6, a7)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting10 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> g a9 -> g a10 -> f (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting2 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting3 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting4 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting5 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting6 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> f (a1, a2, a3, a4, a5, a6)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting7 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> f (a1, a2, a3, a4, a5, a6, a7)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting8 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> f (a1, a2, a3, a4, a5, a6, a7, a8)
+ Contravariant.Extras.ContrazipLifting: contrazipLifting9 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> g a9 -> f (a1, a2, a3, a4, a5, a6, a7, a8, a9)
- Contravariant.Extras: Supplied :: !divisible input -> !input -> Supplied divisible
+ Contravariant.Extras: Supplied :: divisible input -> input -> Supplied divisible

Files

contravariant-extras.cabal view
@@ -1,59 +1,36 @@-name:-  contravariant-extras-version:-  0.3.5-category:-  Control-synopsis:-  Extras for the "contravariant" package-homepage:-  https://github.com/nikita-volkov/contravariant-extras -bug-reports:-  https://github.com/nikita-volkov/contravariant-extras/issues -author:-  Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer:-  Nikita Volkov <nikita.y.volkov@mail.ru>-copyright:-  (c) 2015, Nikita Volkov-license:-  MIT-license-file:-  LICENSE-build-type:-  Simple-cabal-version:-  >=1.10-+name: contravariant-extras+version: 0.3.5.1+category: Control+synopsis: Extras for the "contravariant" package+homepage: https://github.com/nikita-volkov/contravariant-extras+bug-reports: https://github.com/nikita-volkov/contravariant-extras/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2015, Nikita Volkov+license: MIT+license-file: LICENSE+build-type: Simple+cabal-version: >=1.10  source-repository head-  type:-    git-  location:-    git://github.com/nikita-volkov/contravariant-extras.git-+  type: git+  location: git://github.com/nikita-volkov/contravariant-extras.git  library-  hs-source-dirs:-    library-  ghc-options:-  default-extensions:-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples-  default-language:-    Haskell2010-  other-modules:-    Contravariant.Extras.TH+  hs-source-dirs: library+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+  default-language: Haskell2010   exposed-modules:     Contravariant.Extras     Contravariant.Extras.Contrazip-    Contravariant.Extras.Eliminate+    Contravariant.Extras.ContrazipLifting     Contravariant.Extras.Op     Contravariant.Extras.Op.Contrazip+  other-modules:+    Contravariant.Extras.TH+    Contravariant.Extras.Prelude   build-depends:-    base >= 4 && < 5,-    tuple-th >= 0.2.5 && < 0.3,-    template-haskell >= 2.8 && < 3,-    contravariant >= 1.3 && < 2,-    base-prelude >= 0.1.19 && < 2,-    semigroups >= 0.8.4 && < 1-+    base >=4.10 && <5,+    contravariant >=1.3 && <2,+    template-haskell >=2.8 && <3,+    template-haskell-compat-v0208 >=0.1.2 && <2
library/Contravariant/Extras.hs view
@@ -1,18 +1,22 @@ module Contravariant.Extras (-  -- |-  -- A berserk collection of @contrazip@ functions with arities of up to 42.+  {-|+  @contrazip@ functions of multiple arities.+  -}   module Contravariant.Extras.Contrazip,-  module Contravariant.Extras.Eliminate,+  {-|+  @contrazipLifting@ functions of multiple arities.+  -}+  module Contravariant.Extras.ContrazipLifting,   (>*<),   contramany,   Supplied(..), ) where -import BasePrelude hiding ((<>))+import Contravariant.Extras.Prelude hiding ((<>)) import Contravariant.Extras.Contrazip-import Contravariant.Extras.Eliminate+import Contravariant.Extras.ContrazipLifting import Data.Functor.Contravariant.Divisible import Data.Semigroup (Semigroup ((<>))) @@ -46,7 +50,7 @@ -- A combination of a divisible functor with some input for it. -- Allows to use the 'Monoid' API for composition. data Supplied divisible =-  forall input. Supplied !(divisible input) !input+  forall input. Supplied (divisible input) input  instance Divisible divisible => Semigroup (Supplied divisible) where   Supplied divisible1 input1 <> Supplied divisible2 input2 =
library/Contravariant/Extras/Contrazip.hs view
@@ -12,7 +12,7 @@ --  module Contravariant.Extras.Contrazip where -import BasePrelude+import Contravariant.Extras.Prelude import qualified Contravariant.Extras.TH as TH  
+ library/Contravariant/Extras/ContrazipLifting.hs view
@@ -0,0 +1,34 @@+module Contravariant.Extras.ContrazipLifting where++import Contravariant.Extras.Prelude+import Contravariant.Extras.Contrazip+import Data.Functor.Contravariant.Divisible+import qualified Contravariant.Extras.TH as TH+++contrazipLifting2 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)+contrazipLifting2 fn a b = contrazip2 (fn a) (fn b)++contrazipLifting3 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)+contrazipLifting3 fn a b c = contrazip3 (fn a) (fn b) (fn c)++contrazipLifting4 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)+contrazipLifting4 fn a b c d = contrazip4 (fn a) (fn b) (fn c) (fn d)++contrazipLifting5 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)+contrazipLifting5 fn a b c d e = contrazip5 (fn a) (fn b) (fn c) (fn d) (fn e)++contrazipLifting6 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> f (a1, a2, a3, a4, a5, a6)+contrazipLifting6 fn a b c d e f = contrazip6 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f)++contrazipLifting7 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> f (a1, a2, a3, a4, a5, a6, a7)+contrazipLifting7 fn a b c d e f g = contrazip7 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f) (fn g)++contrazipLifting8 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> f (a1, a2, a3, a4, a5, a6, a7, a8)+contrazipLifting8 fn a b c d e f g h = contrazip8 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f) (fn g) (fn h)++contrazipLifting9 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> g a9 -> f (a1, a2, a3, a4, a5, a6, a7, a8, a9)+contrazipLifting9 fn a b c d e f g h i = contrazip9 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f) (fn g) (fn h) (fn i)++contrazipLifting10 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> g a9 -> g a10 -> f (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)+contrazipLifting10 fn a b c d e f g h i j = contrazip10 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f) (fn g) (fn h) (fn i) (fn j)
− library/Contravariant/Extras/Eliminate.hs
@@ -1,25 +0,0 @@-module Contravariant.Extras.Eliminate where--import BasePrelude-import Contravariant.Extras.Contrazip-import Data.Functor.Contravariant.Divisible-import qualified Contravariant.Extras.TH as TH---eliminate2 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)-eliminate2 fn a b = contrazip2 (fn a) (fn b)--eliminate3 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)-eliminate3 fn a b c = contrazip3 (fn a) (fn b) (fn c)--eliminate4 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)-eliminate4 fn a b c d = contrazip4 (fn a) (fn b) (fn c) (fn d)--eliminate5 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)-eliminate5 fn a b c d e = contrazip5 (fn a) (fn b) (fn c) (fn d) (fn e)--eliminate6 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> f (a1, a2, a3, a4, a5, a6)-eliminate6 fn a b c d e f = contrazip6 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f)--eliminate7 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> f (a1, a2, a3, a4, a5, a6, a7)-eliminate7 fn a b c d e f g = contrazip7 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f) (fn g)
library/Contravariant/Extras/Op/Contrazip.hs view
@@ -14,7 +14,7 @@ --  module Contravariant.Extras.Op.Contrazip where -import BasePrelude+import Contravariant.Extras.Prelude import qualified Contravariant.Extras.TH as TH  
+ library/Contravariant/Extras/Prelude.hs view
@@ -0,0 +1,80 @@+module Contravariant.Extras.Prelude+( +  module Exports,+)+where++-- base+-------------------------+import Control.Applicative as Exports+import Control.Arrow as Exports hiding (first, second)+import Control.Category as Exports+import Control.Concurrent as Exports+import Control.Exception as Exports+import Control.Monad as Exports hiding (fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)+import Control.Monad.IO.Class as Exports+import Control.Monad.Fail as Exports+import Control.Monad.Fix as Exports hiding (fix)+import Control.Monad.ST as Exports+import Data.Bifunctor as Exports+import Data.Bits as Exports+import Data.Bool as Exports+import Data.Char as Exports+import Data.Coerce as Exports+import Data.Complex as Exports+import Data.Data as Exports+import Data.Dynamic as Exports+import Data.Either as Exports+import Data.Fixed as Exports+import Data.Foldable as Exports hiding (toList)+import Data.Function as Exports hiding (id, (.))+import Data.Functor as Exports+import Data.Functor.Contravariant as Exports+import Data.Functor.Identity as Exports+import Data.Int as Exports+import Data.IORef as Exports+import Data.Ix as Exports+import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')+import Data.Maybe as Exports+import Data.Monoid as Exports hiding (Last(..), First(..), (<>))+import Data.Ord as Exports+import Data.Proxy as Exports+import Data.Ratio as Exports+import Data.Semigroup as Exports+import Data.STRef as Exports+import Data.String as Exports+import Data.Traversable as Exports+import Data.Tuple as Exports+import Data.Unique as Exports+import Data.Version as Exports+import Data.Void as Exports+import Data.Word as Exports+import Debug.Trace as Exports+import Foreign.ForeignPtr as Exports+import Foreign.Ptr as Exports+import Foreign.StablePtr as Exports+import Foreign.Storable as Exports hiding (sizeOf, alignment)+import GHC.Conc as Exports hiding (withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)+import GHC.Exts as Exports (lazy, inline, sortWith, groupWith, IsList(..))+import GHC.Generics as Exports (Generic, Generic1)+import GHC.IO.Exception as Exports+import Numeric as Exports+import Prelude as Exports hiding (fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))+import System.Environment as Exports+import System.Exit as Exports+import System.IO as Exports+import System.IO.Error as Exports+import System.IO.Unsafe as Exports+import System.Mem as Exports+import System.Mem.StableName as Exports+import System.Timeout as Exports+import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)+import Text.Printf as Exports (printf, hPrintf)+import Text.Read as Exports (Read(..), readMaybe, readEither)+import Unsafe.Coerce as Exports++-- contravariant+-------------------------+import Data.Functor.Contravariant as Exports+import Data.Functor.Contravariant.Divisible as Exports
library/Contravariant/Extras/TH.hs view
@@ -1,11 +1,11 @@ {-# LANGUAGE CPP #-} module Contravariant.Extras.TH where -import BasePrelude+import Contravariant.Extras.Prelude import Data.Functor.Contravariant import Data.Functor.Contravariant.Divisible-import Language.Haskell.TH hiding (classP)-import qualified TupleTH+import Language.Haskell.TH.Syntax hiding (classP)+import qualified TemplateHaskell.Compat.V0208 as Compat   -- |@@ -208,9 +208,14 @@  splitTupleAtE :: Int -> Int -> Exp splitTupleAtE arity position =-  unsafePerformIO $-  runQ $-  TupleTH.splitTupleAt arity position+  let+    nameByIndex index = Name (OccName ('_' : show index)) NameS+    names = enumFromTo 0 (pred arity) & map nameByIndex+    pats = names & map VarP+    pat = TupP pats+    exps = names & map VarE+    body = splitAt position exps & \ (a, b) -> Compat.tupE [Compat.tupE a, Compat.tupE b]+    in LamE [pat] body  classP :: Name -> [Type] -> Pred #if MIN_VERSION_template_haskell(2,10,0)