packages feed

parconc-examples 0.3.5 → 0.4

raw patch · 7 files changed

+457/−96 lines, 7 filesdep +network-uridep ~acceleratedep ~networkdep ~randomnew-component:exe:miscmodules

Dependencies added: network-uri

Dependency ranges changed: accelerate, network, random, utf8-string, vector

Files

+ ChangeLog.md view
@@ -0,0 +1,9 @@+# Version 0.4++* Add `stack.yaml`, builds using LTS 4.2 (GHC 7.10.3)+* Various upper bound updates,including `network-2.6`+* Add `README.md`, with build instructions for Stack and Cabal+* Fix `.cabal` problems found by stack+* Build `tmvar.hs`, `windowman.hs` by importing them into a dummy `Main`+  module in `miscmodules.hs`.+* Removed generated `Parse.hs` and `Lex.hs`
+ TMVar.hs view
@@ -0,0 +1,49 @@+module TMVar where++import Control.Concurrent.STM hiding (TMVar, takeTMVar)++-- <<TMVar+newtype TMVar a = TMVar (TVar (Maybe a))+-- >>++newTMVar :: a -> STM (TMVar a)+newTMVar a = do+  t <- newTVar (Just a)+  return (TMVar t)++-- <<newEmptyTMVar+newEmptyTMVar :: STM (TMVar a)+newEmptyTMVar = do+  t <- newTVar Nothing+  return (TMVar t)+-- >>++-- <<takeTMVar+takeTMVar :: TMVar a -> STM a+takeTMVar (TMVar t) = do+  m <- readTVar t                       -- <1>+  case m of+    Nothing -> retry                    -- <2>+    Just a  -> do+      writeTVar t Nothing               -- <3>+      return a+-- >>++-- <<putTMVar+putTMVar :: TMVar a -> a -> STM ()+putTMVar (TMVar t) a = do+  m <- readTVar t+  case m of+    Nothing -> do+      writeTVar t (Just a)+      return ()+    Just _  -> retry+-- >>++-- <<takeEitherTMVar+takeEitherTMVar :: TMVar a -> TMVar b -> STM (Either a b)+takeEitherTMVar ma mb =+  fmap Left (takeTMVar ma)+    `orElse`+  fmap Right (takeTMVar mb)+-- >>
+ WindowManager.hs view
@@ -0,0 +1,74 @@+module WindowManager where++import Control.Concurrent.STM+import Data.Map as Map+import Data.Set as Set+import Data.Maybe++data Window+instance Eq Window+instance Ord Window++data Desktop+instance Eq Desktop+instance Ord Desktop++type Display = Map Desktop (TVar (Set Window))++-- <<moveWindowSTM+moveWindowSTM :: Display -> Window -> Desktop -> Desktop -> STM ()+moveWindowSTM disp win a b = do+  wa <- readTVar ma+  wb <- readTVar mb+  writeTVar ma (Set.delete win wa)+  writeTVar mb (Set.insert win wb)+ where+  ma = disp ! a+  mb = disp ! b+-- >>++-- <<moveWindow+moveWindow :: Display -> Window -> Desktop -> Desktop -> IO ()+moveWindow disp win a b = atomically $ moveWindowSTM disp win a b+-- >>++-- <<swapWindows+swapWindows :: Display+            -> Window -> Desktop+            -> Window -> Desktop+            -> IO ()+swapWindows disp w a v b = atomically $ do+  moveWindowSTM disp w a b+  moveWindowSTM disp v b a+-- >>++render :: Set Window -> IO ()+render = undefined++-- <<UserFocus+type UserFocus = TVar Desktop+-- >>++-- <<getWindows+getWindows :: Display -> UserFocus -> STM (Set Window)+getWindows disp focus = do+  desktop <- readTVar focus+  readTVar (disp ! desktop)+-- >>++-- <<renderThread+renderThread :: Display -> UserFocus -> IO ()+renderThread disp focus = do+  wins <- atomically $ getWindows disp focus    -- <1>+  loop wins                                     -- <2>+ where+  loop wins = do                                -- <3>+    render wins                                 -- <4>+    next <- atomically $ do+               wins' <- getWindows disp focus   -- <5>+               if (wins == wins')               -- <6>+                   then retry                   -- <7>+                   else return wins'            -- <8>+    loop next+-- >>+
dist/build/parinfer/parinfer-tmp/Lex.hs view
@@ -25,6 +25,72 @@ {-# LINE 1 "templates/wrappers.hs" #-} {-# LINE 1 "<built-in>" #-} {-# LINE 1 "<command-line>" #-}+{-# LINE 9 "<command-line>" #-}+# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4+++++++++++++++++++++++++++++++++++++++++++{-# LINE 9 "<command-line>" #-}+{-# LINE 1 "/home/smarlow/local/lib/ghc-7.10.1/include/ghcversion.h" #-}++++++++++++++++++{-# LINE 9 "<command-line>" #-} {-# LINE 1 "templates/wrappers.hs" #-} -- ----------------------------------------------------------------------------- -- Alex wrapper code.@@ -32,8 +98,9 @@ -- This code is in the PUBLIC DOMAIN; you may copy it freely and use -- it for any purpose whatsoever. +import Control.Applicative (Applicative (..)) import Data.Word (Word8)-{-# LINE 22 "templates/wrappers.hs" #-}+{-# LINE 23 "templates/wrappers.hs" #-}  import qualified Data.Bits @@ -65,13 +132,13 @@ -- ----------------------------------------------------------------------------- -- The input type -{-# LINE 72 "templates/wrappers.hs" #-}+{-# LINE 73 "templates/wrappers.hs" #-} -{-# LINE 89 "templates/wrappers.hs" #-}+{-# LINE 93 "templates/wrappers.hs" #-} -{-# LINE 103 "templates/wrappers.hs" #-}+{-# LINE 107 "templates/wrappers.hs" #-} -{-# LINE 118 "templates/wrappers.hs" #-}+{-# LINE 122 "templates/wrappers.hs" #-}  -- ----------------------------------------------------------------------------- -- Token positions@@ -83,18 +150,18 @@ -- `move_pos' calculates the new position after traversing a given character, -- assuming the usual eight character tab stops. -{-# LINE 141 "templates/wrappers.hs" #-}+{-# LINE 145 "templates/wrappers.hs" #-}  -- ----------------------------------------------------------------------------- -- Default monad -{-# LINE 239 "templates/wrappers.hs" #-}+{-# LINE 256 "templates/wrappers.hs" #-}   -- ----------------------------------------------------------------------------- -- Monad (with ByteString input) -{-# LINE 328 "templates/wrappers.hs" #-}+{-# LINE 347 "templates/wrappers.hs" #-}   -- -----------------------------------------------------------------------------@@ -127,9 +194,9 @@ -- ----------------------------------------------------------------------------- -- Basic wrapper, ByteString version -{-# LINE 373 "templates/wrappers.hs" #-}+{-# LINE 392 "templates/wrappers.hs" #-} -{-# LINE 386 "templates/wrappers.hs" #-}+{-# LINE 406 "templates/wrappers.hs" #-}   -- -----------------------------------------------------------------------------@@ -137,13 +204,13 @@  -- Adds text positions to the basic model. -{-# LINE 403 "templates/wrappers.hs" #-}+{-# LINE 423 "templates/wrappers.hs" #-}   -- ----------------------------------------------------------------------------- -- Posn wrapper, ByteString version -{-# LINE 418 "templates/wrappers.hs" #-}+{-# LINE 438 "templates/wrappers.hs" #-}   -- -----------------------------------------------------------------------------@@ -188,6 +255,72 @@ {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-} {-# LINE 1 "<command-line>" #-}+{-# LINE 10 "<command-line>" #-}+# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4+++++++++++++++++++++++++++++++++++++++++++{-# LINE 10 "<command-line>" #-}+{-# LINE 1 "/home/smarlow/local/lib/ghc-7.10.1/include/ghcversion.h" #-}++++++++++++++++++{-# LINE 10 "<command-line>" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} -- ----------------------------------------------------------------------------- -- ALEX TEMPLATE@@ -204,6 +337,7 @@   +-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. #if __GLASGOW_HASKELL__ > 706 #define GTE(n,m) (tagToEnum# (n >=# m)) #define EQ(n,m) (tagToEnum# (n ==# m))@@ -211,11 +345,11 @@ #define GTE(n,m) (n >=# m) #define EQ(n,m) (n ==# m) #endif-{-# LINE 50 "templates/GenericTemplate.hs" #-}+{-# LINE 51 "templates/GenericTemplate.hs" #-}   data AlexAddr = AlexA# Addr#-+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. #if __GLASGOW_HASKELL__ < 503 uncheckedShiftL# = shiftL# #endif@@ -258,6 +392,7 @@   + #if __GLASGOW_HASKELL__ < 503 quickIndex arr i = arr ! i #else@@ -346,7 +481,7 @@ 	check_accs (AlexAccNone) = last_acc 	check_accs (AlexAcc a  ) = AlexLastAcc a input (I# (len)) 	check_accs (AlexAccSkip) = AlexLastSkip  input (I# (len))-{-# LINE 196 "templates/GenericTemplate.hs" #-}+{-# LINE 198 "templates/GenericTemplate.hs" #-}  data AlexLastAcc a   = AlexNone@@ -362,7 +497,7 @@   = AlexAccNone   | AlexAcc a   | AlexAccSkip-{-# LINE 240 "templates/GenericTemplate.hs" #-}+{-# LINE 242 "templates/GenericTemplate.hs" #-}  -- used by wrappers iUnbox (I# (i)) = i
fwaccel.hs view
@@ -78,7 +78,7 @@  toAdjMatrix :: [[Weight]] -> Graph toAdjMatrix xs = A.fromList (Z :. k :. k) (concat xs)-  where k = length xs+  where k = Prelude.length xs   main :: IO ()
+ miscmodules.hs view
@@ -0,0 +1,6 @@+import WindowManager+import TMVar+import TList++main :: IO ()+main = return ()
parconc-examples.cabal view
@@ -1,5 +1,5 @@ name:                parconc-examples-version:             0.3.5+version:             0.4 synopsis:            Examples to accompany the book "Parallel and Concurrent Programming in Haskell" -- description:          license:             BSD3@@ -30,6 +30,9 @@                      kmeans/Makefile                      timeout2.hs                      parinfer/benchmark.in+                     tmvar.hs+                     windowman.hs+                     ChangeLog.md  -- ----------------------------------------------------------------------------- -- Flags@@ -54,8 +57,6 @@   default: False  -- -f-accelerate: Do not build the examples that require accelerate.--- Accelerate doesn't build with GHC 7.10 yet: accelerate-io-0.15--- requires base <4.8.  flag accelerate   default : True@@ -65,6 +66,12 @@ flag distributed   default : True +-- -f network26: Use network-2.6.  Internal flag; you shouldn't need+-- to change this.++flag network26+  default : True+ -- ----------------------------------------------------------------------------- -- par-eval @@ -186,18 +193,19 @@                  , binary >=0.6.3 && < 0.8                  , array >= 0.4 && <0.6                  , bytestring >= 0.9 && < 0.11-                 , vector >= 0.10 && < 0.11+                 , vector >= 0.10 && < 0.12   ghc-options: -threaded   default-language: Haskell2010  executable GenSamples   hs-source-dirs: kmeans   main-is: GenSamples.hs+  other-modules: KMeansCore   build-depends:   base >= 4.5 && < 4.9                  , binary >=0.6.3 && < 0.8                  , array >= 0.4 && <0.6-                 , vector >= 0.10 && < 0.11-                 , random >= 1.0 && < 1.1+                 , vector >= 0.10 && < 0.12+                 , random >= 1.0 && < 1.2                  , normaldistribution >= 1.1 && < 1.2                  , deepseq >= 1.3 && < 1.5                  , bytestring >= 0.9 && < 0.11@@ -228,7 +236,7 @@   other-modules: SparseGraph MapCompat   hs-source-dirs: fwsparse   build-depends:   base >= 4.5 && < 4.9-                 , random >= 1.0 && < 1.1+                 , random >= 1.0 && < 1.2                  , array >= 0.4 && <0.6                  , containers >= 0.4 && < 0.6   default-language: Haskell2010@@ -238,7 +246,7 @@   other-modules: SparseGraph MapCompat   hs-source-dirs: fwsparse   build-depends:   base >= 4.5 && < 4.9-                 , random >= 1.0 && < 1.1+                 , random >= 1.0 && < 1.2                  , array >= 0.4 && <0.6                  , containers >= 0.4 && < 0.6                  , monad-par >= 0.3.4 && < 0.4@@ -251,7 +259,7 @@   build-depends:   base >= 4.5 && < 4.9                  , containers >= 0.4 && < 0.6                  , deepseq >= 1.3 && < 1.5-                 , random >= 1.0 && < 1.1+                 , random >= 1.0 && < 1.2   default-language: Haskell2010  executable  timetable1@@ -260,7 +268,7 @@                  , containers >= 0.4 && < 0.6                  , deepseq >= 1.3 && < 1.5                  , monad-par >= 0.3.4 && < 0.4-                 , random >= 1.0 && < 1.1+                 , random >= 1.0 && < 1.2   default-language: Haskell2010  executable  timetable2@@ -269,7 +277,7 @@                  , containers >= 0.4 && < 0.6                  , deepseq >= 1.3 && < 1.5                  , monad-par >= 0.3.4 && < 0.4-                 , random >= 1.0 && < 1.1+                 , random >= 1.0 && < 1.2   default-language: Haskell2010  executable  timetable3@@ -278,7 +286,7 @@                  , containers >= 0.4 && < 0.6                  , deepseq >= 1.3 && < 1.5                  , monad-par >= 0.3.4 && < 0.4-                 , random >= 1.0 && < 1.1+                 , random >= 1.0 && < 1.2   default-language: Haskell2010  executable  parinfer@@ -348,7 +356,7 @@   build-depends:   base >= 4.5 && < 4.9   ghc-options: -O2   if flag(accelerate)-     build-depends: accelerate >= 0.12 && < 0.15+     build-depends: accelerate >= 0.12 && < 0.16   else      buildable: False   default-language: Haskell2010@@ -357,7 +365,7 @@   main-is: fwaccel-gpu.hs   build-depends:   base >= 4.5 && < 4.9   if flag(accelerate)-     build-depends: accelerate >= 0.12 && < 0.15+     build-depends: accelerate >= 0.12 && < 0.16   else      buildable: False   if flag(cuda)@@ -374,7 +382,7 @@   build-depends:   base >= 4.5 && < 4.9                  , fclabels   if flag(accelerate)-     build-depends: accelerate >= 0.12 && < 0.15+     build-depends: accelerate >= 0.12 && < 0.16                   , accelerate-io   else      buildable: False@@ -450,9 +458,13 @@   other-modules: GetURL   build-depends:   base >= 4.5 && < 4.9                  , containers >= 0.4 && < 0.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*                  , bytestring >= 0.9 && < 0.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls2@@ -462,8 +474,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls3@@ -473,8 +489,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls4@@ -484,8 +504,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls5@@ -495,8 +519,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls6@@ -506,8 +534,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  -- -----------------------------------------------------------------------------@@ -520,8 +552,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturlscancel2@@ -531,8 +567,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  modifytwo@@ -563,29 +603,27 @@ -- ----------------------------------------------------------------------------- -- conc-stm --- not mentioned in the text?-executable  windowman-  main-is: windowman.hs+executable  miscmodules+  main-is: miscmodules.hs+  other-modules: TMVar, TList, TQueue, TBQueue, WindowManager   build-depends:   base >= 4.5 && < 4.9                  , containers >= 0.4 && < 0.6                  , stm ==2.4.*   default-language: Haskell2010 -executable  tmvar-  main-is: tmvar.hs-  build-depends:   base >= 4.5 && < 4.9-                 , stm ==2.4.*-  default-language: Haskell2010- executable  geturlsfirst   main-is: geturlsfirst.hs-  other-modules: ConcurrentUtils+  other-modules: ConcurrentUtils, GetURL   build-depends:   base >= 4.5 && < 4.9                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6                  , HTTP ==4000.2.*-                 , network >= 2.3 && < 2.5+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  TChan@@ -594,56 +632,52 @@                  , stm ==2.4.*   default-language: Haskell2010 -executable  TList-  main-is: TList.hs-  build-depends:   base >= 4.5 && < 4.9-                 , stm ==2.4.*-  default-language: Haskell2010--executable  TQueue-  main-is: TQueue.hs-  build-depends:   base >= 4.5 && < 4.9-                 , stm ==2.4.*-  default-language: Haskell2010--executable  TBQueue-  main-is: TBQueue.hs-  build-depends:   base >= 4.5 && < 4.9-                 , stm ==2.4.*-  default-language: Haskell2010- -- ----------------------------------------------------------------------------- -- conc-higher  executable  geturls7   main-is: geturls7.hs-  other-modules: ConcurrentUtils+  other-modules: ConcurrentUtils, GetURL   build-depends:   base >= 4.5 && < 4.9                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls8   main-is: geturls8.hs+  other-modules: Async, GetURL   build-depends:   base >= 4.5 && < 4.9                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturls9   main-is: geturls9.hs+  other-modules: Async, GetURL   build-depends:   base >= 4.5 && < 4.9                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  timeout2@@ -712,7 +746,11 @@   other-modules: ConcurrentUtils   build-depends:   base >= 4.5 && < 4.9                  , stm ==2.4.*-                 , network >= 2.3 && < 2.5+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  server2@@ -721,7 +759,11 @@   build-depends:   base >= 4.5 && < 4.9                  , stm ==2.4.*                  , async ==2.0.*-                 , network >= 2.3 && < 2.5+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable chat@@ -731,7 +773,11 @@                  , containers >= 0.4 && < 0.6                  , async ==2.0.*                  , stm ==2.4.*-                 , network >= 2.3 && < 2.5+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  -- -----------------------------------------------------------------------------@@ -741,9 +787,13 @@   main-is: distrib-ping/ping.hs   other-modules: DistribUtils   build-depends:   base >= 4.5 && < 4.9-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -760,9 +810,13 @@   main-is: distrib-ping/ping-multi.hs   other-modules: DistribUtils   build-depends:   base >= 4.5 && < 4.9-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -779,9 +833,13 @@   main-is: distrib-ping/ping-tc.hs   other-modules: DistribUtils   build-depends:   base >= 4.5 && < 4.9-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -798,9 +856,13 @@   main-is: distrib-ping/ping-tc-merge.hs   other-modules: DistribUtils   build-depends:   base >= 4.5 && < 4.9-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -818,9 +880,13 @@   main-is: distrib-ping/ping-tc-notify.hs   other-modules: DistribUtils   build-depends:   base >= 4.5 && < 4.9-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -836,9 +902,13 @@ executable ping-fail   main-is: distrib-ping/ping-fail.hs   build-depends:   base >= 4.5 && < 4.9-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -858,10 +928,14 @@                  , containers >= 0.4 && < 0.6                  , stm ==2.4.*                  , async ==2.0.*-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , transformers >=0.3 && <0.5                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -881,10 +955,14 @@                  , containers >= 0.4 && < 0.6                  , stm ==2.4.*                  , async ==2.0.*-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , transformers >=0.3 && <0.5                  , template-haskell >= 2.7 && < 2.11+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -905,10 +983,14 @@                  , containers >= 0.4 && < 0.6                  , stm ==2.4.*                  , async ==2.0.*-                 , network >= 2.3 && < 2.5                  , binary >=0.6.3 && < 0.8                  , template-haskell >= 2.7 && < 2.11                  , transformers >=0.3 && <0.5+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   if impl(ghc <= 7.6)       -- prior to ghc-7.4 generics lived in ghc-prim       build-depends: ghc-prim@@ -961,9 +1043,13 @@                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6                  , HTTP ==4000.2.*-                 , network >= 2.3 && < 2.5-                 , utf8-string ==0.3.*+                 , utf8-string >= 0.3 && < 1.1                  , xml ==1.3.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  bingtranslatorconc@@ -974,9 +1060,13 @@                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6                  , HTTP ==4000.2.*-                 , network >= 2.3 && < 2.5-                 , utf8-string ==0.3.*+                 , utf8-string >= 0.3 && < 1.1                  , xml ==1.3.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  executable  geturlsstm@@ -986,14 +1076,12 @@                  , stm ==2.4.*                  , bytestring >= 0.9 && < 0.11                  , time >= 1.4 && < 1.6-                 , network >= 2.3 && < 2.5                  , HTTP ==4000.2.*-  default-language: Haskell2010--executable  Async-  main-is: Async.hs-  build-depends:   base >= 4.5 && < 4.9-                 , stm ==2.4.*+  if flag(network26)+      build-depends: network >= 2.6 && < 2.7+                   , network-uri >= 2.6 && < 2.7+  else+      build-depends: network >= 2.3 && < 2.6   default-language: Haskell2010  -- ToDo: