diff --git a/accelerate.cabal b/accelerate.cabal index 41c367312..89e0abc44 100644 --- a/accelerate.cabal +++ b/accelerate.cabal @@ -351,6 +351,7 @@ library , hashable >= 1.1 , hashtables >= 1.2.3 , hedgehog >= 0.5 + , limp >= 0.3.2.3 , microlens >= 0.4 , microlens-th >= 0.4 , microlens-mtl >= 0.2 @@ -451,6 +452,7 @@ library Data.Array.Accelerate.Trafo.Partitioning.ILP.Clustering Data.Array.Accelerate.Trafo.Partitioning.ILP.Graph Data.Array.Accelerate.Trafo.Partitioning.ILP.Labels + Data.Array.Accelerate.Trafo.Partitioning.ILP.Limp Data.Array.Accelerate.Trafo.Partitioning.ILP.MIP Data.Array.Accelerate.Trafo.Partitioning.ILP.NameGeneration Data.Array.Accelerate.Trafo.Partitioning.ILP.Solve diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/autogen/Paths_accelerate.hs b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/autogen/Paths_accelerate.hs deleted file mode 100644 index c19ebd36d..000000000 --- a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/autogen/Paths_accelerate.hs +++ /dev/null @@ -1,50 +0,0 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE NoRebindableSyntax #-} -{-# OPTIONS_GHC -fno-warn-missing-import-lists #-} -module Paths_accelerate ( - version, - getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, - getDataFileName, getSysconfDir - ) where - -import qualified Control.Exception as Exception -import Data.Version (Version(..)) -import System.Environment (getEnv) -import Prelude - -#if defined(VERSION_base) - -#if MIN_VERSION_base(4,0,0) -catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a -#else -catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a -#endif - -#else -catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a -#endif -catchIO = Exception.catch - -version :: Version -version = Version [1,4,0,0] [] -bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath - -bindir = "/home/david/.cabal/bin" -libdir = "/home/david/.cabal/lib/x86_64-linux-ghc-8.6.5/accelerate-1.4.0.0-inplace" -dynlibdir = "/home/david/.cabal/lib/x86_64-linux-ghc-8.6.5" -datadir = "/home/david/.cabal/share/x86_64-linux-ghc-8.6.5/accelerate-1.4.0.0" -libexecdir = "/home/david/.cabal/libexec/x86_64-linux-ghc-8.6.5/accelerate-1.4.0.0" -sysconfdir = "/home/david/.cabal/etc" - -getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath -getBinDir = catchIO (getEnv "accelerate_bindir") (\_ -> return bindir) -getLibDir = catchIO (getEnv "accelerate_libdir") (\_ -> return libdir) -getDynLibDir = catchIO (getEnv "accelerate_dynlibdir") (\_ -> return dynlibdir) -getDataDir = catchIO (getEnv "accelerate_datadir") (\_ -> return datadir) -getLibexecDir = catchIO (getEnv "accelerate_libexecdir") (\_ -> return libexecdir) -getSysconfDir = catchIO (getEnv "accelerate_sysconfdir") (\_ -> return sysconfdir) - -getDataFileName :: FilePath -> IO FilePath -getDataFileName name = do - dir <- getDataDir - return (dir ++ "/" ++ name) diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/autogen/cabal_macros.h b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/autogen/cabal_macros.h deleted file mode 100644 index caf258ffc..000000000 --- a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/autogen/cabal_macros.h +++ /dev/null @@ -1,462 +0,0 @@ -/* DO NOT EDIT: This file is automatically generated by Cabal */ - -/* package accelerate-1.4.0.0 */ -#ifndef VERSION_accelerate -#define VERSION_accelerate "1.4.0.0" -#endif /* VERSION_accelerate */ -#ifndef MIN_VERSION_accelerate -#define MIN_VERSION_accelerate(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 4 || \ - (major1) == 1 && (major2) == 4 && (minor) <= 0) -#endif /* MIN_VERSION_accelerate */ - -/* package ansi-terminal-0.11 */ -#ifndef VERSION_ansi_terminal -#define VERSION_ansi_terminal "0.11" -#endif /* VERSION_ansi_terminal */ -#ifndef MIN_VERSION_ansi_terminal -#define MIN_VERSION_ansi_terminal(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 11 || \ - (major1) == 0 && (major2) == 11 && (minor) <= 0) -#endif /* MIN_VERSION_ansi_terminal */ - -/* package array-0.5.3.0 */ -#ifndef VERSION_array -#define VERSION_array "0.5.3.0" -#endif /* VERSION_array */ -#ifndef MIN_VERSION_array -#define MIN_VERSION_array(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 5 || \ - (major1) == 0 && (major2) == 5 && (minor) <= 3) -#endif /* MIN_VERSION_array */ - -/* package base-4.12.0.0 */ -#ifndef VERSION_base -#define VERSION_base "4.12.0.0" -#endif /* VERSION_base */ -#ifndef MIN_VERSION_base -#define MIN_VERSION_base(major1,major2,minor) (\ - (major1) < 4 || \ - (major1) == 4 && (major2) < 12 || \ - (major1) == 4 && (major2) == 12 && (minor) <= 0) -#endif /* MIN_VERSION_base */ - -/* package base-orphans-0.8.4 */ -#ifndef VERSION_base_orphans -#define VERSION_base_orphans "0.8.4" -#endif /* VERSION_base_orphans */ -#ifndef MIN_VERSION_base_orphans -#define MIN_VERSION_base_orphans(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 8 || \ - (major1) == 0 && (major2) == 8 && (minor) <= 4) -#endif /* MIN_VERSION_base_orphans */ - -/* package bytestring-0.10.8.2 */ -#ifndef VERSION_bytestring -#define VERSION_bytestring "0.10.8.2" -#endif /* VERSION_bytestring */ -#ifndef MIN_VERSION_bytestring -#define MIN_VERSION_bytestring(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 10 || \ - (major1) == 0 && (major2) == 10 && (minor) <= 8) -#endif /* MIN_VERSION_bytestring */ - -/* package containers-0.6.0.1 */ -#ifndef VERSION_containers -#define VERSION_containers "0.6.0.1" -#endif /* VERSION_containers */ -#ifndef MIN_VERSION_containers -#define MIN_VERSION_containers(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 6 || \ - (major1) == 0 && (major2) == 6 && (minor) <= 0) -#endif /* MIN_VERSION_containers */ - -/* package cryptonite-0.28 */ -#ifndef VERSION_cryptonite -#define VERSION_cryptonite "0.28" -#endif /* VERSION_cryptonite */ -#ifndef MIN_VERSION_cryptonite -#define MIN_VERSION_cryptonite(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 28 || \ - (major1) == 0 && (major2) == 28 && (minor) <= 0) -#endif /* MIN_VERSION_cryptonite */ - -/* package deepseq-1.4.4.0 */ -#ifndef VERSION_deepseq -#define VERSION_deepseq "1.4.4.0" -#endif /* VERSION_deepseq */ -#ifndef MIN_VERSION_deepseq -#define MIN_VERSION_deepseq(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 4 || \ - (major1) == 1 && (major2) == 4 && (minor) <= 4) -#endif /* MIN_VERSION_deepseq */ - -/* package directory-1.3.3.0 */ -#ifndef VERSION_directory -#define VERSION_directory "1.3.3.0" -#endif /* VERSION_directory */ -#ifndef MIN_VERSION_directory -#define MIN_VERSION_directory(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 3 || \ - (major1) == 1 && (major2) == 3 && (minor) <= 3) -#endif /* MIN_VERSION_directory */ - -/* package exceptions-0.10.4 */ -#ifndef VERSION_exceptions -#define VERSION_exceptions "0.10.4" -#endif /* VERSION_exceptions */ -#ifndef MIN_VERSION_exceptions -#define MIN_VERSION_exceptions(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 10 || \ - (major1) == 0 && (major2) == 10 && (minor) <= 4) -#endif /* MIN_VERSION_exceptions */ - -/* package filepath-1.4.2.1 */ -#ifndef VERSION_filepath -#define VERSION_filepath "1.4.2.1" -#endif /* VERSION_filepath */ -#ifndef MIN_VERSION_filepath -#define MIN_VERSION_filepath(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 4 || \ - (major1) == 1 && (major2) == 4 && (minor) <= 2) -#endif /* MIN_VERSION_filepath */ - -/* package ghc-prim-0.5.3 */ -#ifndef VERSION_ghc_prim -#define VERSION_ghc_prim "0.5.3" -#endif /* VERSION_ghc_prim */ -#ifndef MIN_VERSION_ghc_prim -#define MIN_VERSION_ghc_prim(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 5 || \ - (major1) == 0 && (major2) == 5 && (minor) <= 3) -#endif /* MIN_VERSION_ghc_prim */ - -/* package half-0.3.1 */ -#ifndef VERSION_half -#define VERSION_half "0.3.1" -#endif /* VERSION_half */ -#ifndef MIN_VERSION_half -#define MIN_VERSION_half(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 3 || \ - (major1) == 0 && (major2) == 3 && (minor) <= 1) -#endif /* MIN_VERSION_half */ - -/* package hashable-1.3.0.0 */ -#ifndef VERSION_hashable -#define VERSION_hashable "1.3.0.0" -#endif /* VERSION_hashable */ -#ifndef MIN_VERSION_hashable -#define MIN_VERSION_hashable(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 3 || \ - (major1) == 1 && (major2) == 3 && (minor) <= 0) -#endif /* MIN_VERSION_hashable */ - -/* package hashtables-1.2.4.1 */ -#ifndef VERSION_hashtables -#define VERSION_hashtables "1.2.4.1" -#endif /* VERSION_hashtables */ -#ifndef MIN_VERSION_hashtables -#define MIN_VERSION_hashtables(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 2 || \ - (major1) == 1 && (major2) == 2 && (minor) <= 4) -#endif /* MIN_VERSION_hashtables */ - -/* package hedgehog-1.0.4 */ -#ifndef VERSION_hedgehog -#define VERSION_hedgehog "1.0.4" -#endif /* VERSION_hedgehog */ -#ifndef MIN_VERSION_hedgehog -#define MIN_VERSION_hedgehog(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 0 || \ - (major1) == 1 && (major2) == 0 && (minor) <= 4) -#endif /* MIN_VERSION_hedgehog */ - -/* package lens-4.19.2 */ -#ifndef VERSION_lens -#define VERSION_lens "4.19.2" -#endif /* VERSION_lens */ -#ifndef MIN_VERSION_lens -#define MIN_VERSION_lens(major1,major2,minor) (\ - (major1) < 4 || \ - (major1) == 4 && (major2) < 19 || \ - (major1) == 4 && (major2) == 19 && (minor) <= 2) -#endif /* MIN_VERSION_lens */ - -/* package limp-0.3.2.3 */ -#ifndef VERSION_limp -#define VERSION_limp "0.3.2.3" -#endif /* VERSION_limp */ -#ifndef MIN_VERSION_limp -#define MIN_VERSION_limp(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 3 || \ - (major1) == 0 && (major2) == 3 && (minor) <= 2) -#endif /* MIN_VERSION_limp */ - -/* package mtl-2.2.2 */ -#ifndef VERSION_mtl -#define VERSION_mtl "2.2.2" -#endif /* VERSION_mtl */ -#ifndef MIN_VERSION_mtl -#define MIN_VERSION_mtl(major1,major2,minor) (\ - (major1) < 2 || \ - (major1) == 2 && (major2) < 2 || \ - (major1) == 2 && (major2) == 2 && (minor) <= 2) -#endif /* MIN_VERSION_mtl */ - -/* package prettyprinter-1.7.0 */ -#ifndef VERSION_prettyprinter -#define VERSION_prettyprinter "1.7.0" -#endif /* VERSION_prettyprinter */ -#ifndef MIN_VERSION_prettyprinter -#define MIN_VERSION_prettyprinter(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 7 || \ - (major1) == 1 && (major2) == 7 && (minor) <= 0) -#endif /* MIN_VERSION_prettyprinter */ - -/* package prettyprinter-ansi-terminal-1.1.2 */ -#ifndef VERSION_prettyprinter_ansi_terminal -#define VERSION_prettyprinter_ansi_terminal "1.1.2" -#endif /* VERSION_prettyprinter_ansi_terminal */ -#ifndef MIN_VERSION_prettyprinter_ansi_terminal -#define MIN_VERSION_prettyprinter_ansi_terminal(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 1 || \ - (major1) == 1 && (major2) == 1 && (minor) <= 2) -#endif /* MIN_VERSION_prettyprinter_ansi_terminal */ - -/* package primitive-0.7.1.0 */ -#ifndef VERSION_primitive -#define VERSION_primitive "0.7.1.0" -#endif /* VERSION_primitive */ -#ifndef MIN_VERSION_primitive -#define MIN_VERSION_primitive(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 7 || \ - (major1) == 0 && (major2) == 7 && (minor) <= 1) -#endif /* MIN_VERSION_primitive */ - -/* package tasty-1.4.1 */ -#ifndef VERSION_tasty -#define VERSION_tasty "1.4.1" -#endif /* VERSION_tasty */ -#ifndef MIN_VERSION_tasty -#define MIN_VERSION_tasty(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 4 || \ - (major1) == 1 && (major2) == 4 && (minor) <= 1) -#endif /* MIN_VERSION_tasty */ - -/* package template-haskell-2.14.0.0 */ -#ifndef VERSION_template_haskell -#define VERSION_template_haskell "2.14.0.0" -#endif /* VERSION_template_haskell */ -#ifndef MIN_VERSION_template_haskell -#define MIN_VERSION_template_haskell(major1,major2,minor) (\ - (major1) < 2 || \ - (major1) == 2 && (major2) < 14 || \ - (major1) == 2 && (major2) == 14 && (minor) <= 0) -#endif /* MIN_VERSION_template_haskell */ - -/* package terminal-size-0.3.2.1 */ -#ifndef VERSION_terminal_size -#define VERSION_terminal_size "0.3.2.1" -#endif /* VERSION_terminal_size */ -#ifndef MIN_VERSION_terminal_size -#define MIN_VERSION_terminal_size(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 3 || \ - (major1) == 0 && (major2) == 3 && (minor) <= 2) -#endif /* MIN_VERSION_terminal_size */ - -/* package text-1.2.3.1 */ -#ifndef VERSION_text -#define VERSION_text "1.2.3.1" -#endif /* VERSION_text */ -#ifndef MIN_VERSION_text -#define MIN_VERSION_text(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 2 || \ - (major1) == 1 && (major2) == 2 && (minor) <= 3) -#endif /* MIN_VERSION_text */ - -/* package transformers-0.5.6.2 */ -#ifndef VERSION_transformers -#define VERSION_transformers "0.5.6.2" -#endif /* VERSION_transformers */ -#ifndef MIN_VERSION_transformers -#define MIN_VERSION_transformers(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 5 || \ - (major1) == 0 && (major2) == 5 && (minor) <= 6) -#endif /* MIN_VERSION_transformers */ - -/* package unique-0.0.1 */ -#ifndef VERSION_unique -#define VERSION_unique "0.0.1" -#endif /* VERSION_unique */ -#ifndef MIN_VERSION_unique -#define MIN_VERSION_unique(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 0 || \ - (major1) == 0 && (major2) == 0 && (minor) <= 1) -#endif /* MIN_VERSION_unique */ - -/* package unix-2.7.2.2 */ -#ifndef VERSION_unix -#define VERSION_unix "2.7.2.2" -#endif /* VERSION_unix */ -#ifndef MIN_VERSION_unix -#define MIN_VERSION_unix(major1,major2,minor) (\ - (major1) < 2 || \ - (major1) == 2 && (major2) < 7 || \ - (major1) == 2 && (major2) == 7 && (minor) <= 2) -#endif /* MIN_VERSION_unix */ - -/* package unordered-containers-0.2.13.0 */ -#ifndef VERSION_unordered_containers -#define VERSION_unordered_containers "0.2.13.0" -#endif /* VERSION_unordered_containers */ -#ifndef MIN_VERSION_unordered_containers -#define MIN_VERSION_unordered_containers(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 2 || \ - (major1) == 0 && (major2) == 2 && (minor) <= 13) -#endif /* MIN_VERSION_unordered_containers */ - -/* package vector-0.12.2.0 */ -#ifndef VERSION_vector -#define VERSION_vector "0.12.2.0" -#endif /* VERSION_vector */ -#ifndef MIN_VERSION_vector -#define MIN_VERSION_vector(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 12 || \ - (major1) == 0 && (major2) == 12 && (minor) <= 2) -#endif /* MIN_VERSION_vector */ - -/* tool gcc-9 */ -#ifndef TOOL_VERSION_gcc -#define TOOL_VERSION_gcc "9" -#endif /* TOOL_VERSION_gcc */ -#ifndef MIN_TOOL_VERSION_gcc -#define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ - (major1) < 9 || \ - (major1) == 9 && (major2) < 0 || \ - (major1) == 9 && (major2) == 0 && (minor) <= 0) -#endif /* MIN_TOOL_VERSION_gcc */ - -/* tool ghc-8.6.5 */ -#ifndef TOOL_VERSION_ghc -#define TOOL_VERSION_ghc "8.6.5" -#endif /* TOOL_VERSION_ghc */ -#ifndef MIN_TOOL_VERSION_ghc -#define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ - (major1) < 8 || \ - (major1) == 8 && (major2) < 6 || \ - (major1) == 8 && (major2) == 6 && (minor) <= 5) -#endif /* MIN_TOOL_VERSION_ghc */ - -/* tool ghc-pkg-8.6.5 */ -#ifndef TOOL_VERSION_ghc_pkg -#define TOOL_VERSION_ghc_pkg "8.6.5" -#endif /* TOOL_VERSION_ghc_pkg */ -#ifndef MIN_TOOL_VERSION_ghc_pkg -#define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ - (major1) < 8 || \ - (major1) == 8 && (major2) < 6 || \ - (major1) == 8 && (major2) == 6 && (minor) <= 5) -#endif /* MIN_TOOL_VERSION_ghc_pkg */ - -/* tool haddock-2.22.0 */ -#ifndef TOOL_VERSION_haddock -#define TOOL_VERSION_haddock "2.22.0" -#endif /* TOOL_VERSION_haddock */ -#ifndef MIN_TOOL_VERSION_haddock -#define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ - (major1) < 2 || \ - (major1) == 2 && (major2) < 22 || \ - (major1) == 2 && (major2) == 22 && (minor) <= 0) -#endif /* MIN_TOOL_VERSION_haddock */ - -/* tool hpc-0.67 */ -#ifndef TOOL_VERSION_hpc -#define TOOL_VERSION_hpc "0.67" -#endif /* TOOL_VERSION_hpc */ -#ifndef MIN_TOOL_VERSION_hpc -#define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 67 || \ - (major1) == 0 && (major2) == 67 && (minor) <= 0) -#endif /* MIN_TOOL_VERSION_hpc */ - -/* tool hsc2hs-0.68.5 */ -#ifndef TOOL_VERSION_hsc2hs -#define TOOL_VERSION_hsc2hs "0.68.5" -#endif /* TOOL_VERSION_hsc2hs */ -#ifndef MIN_TOOL_VERSION_hsc2hs -#define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 68 || \ - (major1) == 0 && (major2) == 68 && (minor) <= 5) -#endif /* MIN_TOOL_VERSION_hsc2hs */ - -/* tool pkg-config-0.29.1 */ -#ifndef TOOL_VERSION_pkg_config -#define TOOL_VERSION_pkg_config "0.29.1" -#endif /* TOOL_VERSION_pkg_config */ -#ifndef MIN_TOOL_VERSION_pkg_config -#define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ - (major1) < 0 || \ - (major1) == 0 && (major2) < 29 || \ - (major1) == 0 && (major2) == 29 && (minor) <= 1) -#endif /* MIN_TOOL_VERSION_pkg_config */ - -/* tool runghc-8.6.5 */ -#ifndef TOOL_VERSION_runghc -#define TOOL_VERSION_runghc "8.6.5" -#endif /* TOOL_VERSION_runghc */ -#ifndef MIN_TOOL_VERSION_runghc -#define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\ - (major1) < 8 || \ - (major1) == 8 && (major2) < 6 || \ - (major1) == 8 && (major2) == 6 && (minor) <= 5) -#endif /* MIN_TOOL_VERSION_runghc */ - -/* tool strip-2.34 */ -#ifndef TOOL_VERSION_strip -#define TOOL_VERSION_strip "2.34" -#endif /* TOOL_VERSION_strip */ -#ifndef MIN_TOOL_VERSION_strip -#define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ - (major1) < 2 || \ - (major1) == 2 && (major2) < 34 || \ - (major1) == 2 && (major2) == 34 && (minor) <= 0) -#endif /* MIN_TOOL_VERSION_strip */ - -#ifndef CURRENT_PACKAGE_KEY -#define CURRENT_PACKAGE_KEY "accelerate-1.4.0.0-inplace" -#endif /* CURRENT_PACKAGE_KEY */ -#ifndef CURRENT_COMPONENT_ID -#define CURRENT_COMPONENT_ID "accelerate-1.4.0.0-inplace" -#endif /* CURRENT_COMPONENT_ID */ -#ifndef CURRENT_PACKAGE_VERSION -#define CURRENT_PACKAGE_VERSION "1.4.0.0" -#endif /* CURRENT_PACKAGE_VERSION */ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/cache/config b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/cache/config deleted file mode 100644 index c51f540e6..000000000 Binary files a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/cache/config and /dev/null differ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/package.conf.inplace/package.cache b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/package.conf.inplace/package.cache deleted file mode 100644 index b3cae5cf0..000000000 Binary files a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/package.conf.inplace/package.cache and /dev/null differ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup-config b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup-config deleted file mode 100644 index 6114343b4..000000000 Binary files a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup-config and /dev/null differ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/Main.hi b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/Main.hi deleted file mode 100644 index 1cbd2840e..000000000 Binary files a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/Main.hi and /dev/null differ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/Main.o b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/Main.o deleted file mode 100644 index 798a84128..000000000 Binary files a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/Main.o and /dev/null differ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup deleted file mode 100755 index 90983db6b..000000000 Binary files a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup and /dev/null differ diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup.hs b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup.hs deleted file mode 100644 index ea0f0d215..000000000 --- a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup.hs +++ /dev/null @@ -1,21 +0,0 @@ -{-# LANGUAGE CPP #-} - -module Main where - -#ifndef MIN_VERSION_cabal_doctest -#define MIN_VERSION_cabal_doctest(x,y,z) 0 -#endif - -#if MIN_VERSION_cabal_doctest(1,0,0) -import Distribution.Extra.Doctest - -main :: IO () -main = defaultMainWithDoctests "doctest" - -#else -import Distribution.Simple - -main :: IO () -main = defaultMain -#endif - diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup.version b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup.version deleted file mode 100644 index dda5154cf..000000000 --- a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup.version +++ /dev/null @@ -1 +0,0 @@ -mkVersion [2,4,0,1] diff --git a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup_macros.h b/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup_macros.h deleted file mode 100644 index b942ff09e..000000000 --- a/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/setup/setup_macros.h +++ /dev/null @@ -1,33 +0,0 @@ -/* package Cabal-2.4.0.1 */ -#ifndef VERSION_Cabal -#define VERSION_Cabal "2.4.0.1" -#endif /* VERSION_Cabal */ -#ifndef MIN_VERSION_Cabal -#define MIN_VERSION_Cabal(major1,major2,minor) (\ - (major1) < 2 || \ - (major1) == 2 && (major2) < 4 || \ - (major1) == 2 && (major2) == 4 && (minor) <= 0) -#endif /* MIN_VERSION_Cabal */ - -/* package base-4.12.0.0 */ -#ifndef VERSION_base -#define VERSION_base "4.12.0.0" -#endif /* VERSION_base */ -#ifndef MIN_VERSION_base -#define MIN_VERSION_base(major1,major2,minor) (\ - (major1) < 4 || \ - (major1) == 4 && (major2) < 12 || \ - (major1) == 4 && (major2) == 12 && (minor) <= 0) -#endif /* MIN_VERSION_base */ - -/* package cabal-doctest-1.0.8 */ -#ifndef VERSION_cabal_doctest -#define VERSION_cabal_doctest "1.0.8" -#endif /* VERSION_cabal_doctest */ -#ifndef MIN_VERSION_cabal_doctest -#define MIN_VERSION_cabal_doctest(major1,major2,minor) (\ - (major1) < 1 || \ - (major1) == 1 && (major2) < 0 || \ - (major1) == 1 && (major2) == 0 && (minor) <= 8) -#endif /* MIN_VERSION_cabal_doctest */ - diff --git a/dist-newstyle/cache/compiler b/dist-newstyle/cache/compiler deleted file mode 100644 index 55d5213ca..000000000 Binary files a/dist-newstyle/cache/compiler and /dev/null differ diff --git a/dist-newstyle/cache/config b/dist-newstyle/cache/config deleted file mode 100644 index efe666277..000000000 Binary files a/dist-newstyle/cache/config and /dev/null differ diff --git a/dist-newstyle/cache/elaborated-plan b/dist-newstyle/cache/elaborated-plan deleted file mode 100644 index 5f9349996..000000000 Binary files a/dist-newstyle/cache/elaborated-plan and /dev/null differ diff --git a/dist-newstyle/cache/improved-plan b/dist-newstyle/cache/improved-plan deleted file mode 100644 index b36229e20..000000000 Binary files a/dist-newstyle/cache/improved-plan and /dev/null differ diff --git a/dist-newstyle/cache/plan.json b/dist-newstyle/cache/plan.json deleted file mode 100644 index 118e5e7f4..000000000 --- a/dist-newstyle/cache/plan.json +++ /dev/null @@ -1 +0,0 @@ -{"cabal-version":"3.2.0.0","cabal-lib-version":"3.2.1.0","compiler-id":"ghc-8.6.5","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-2.4.0.1","pkg-name":"Cabal","pkg-version":"2.4.0.1","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"StateVar-1.2.1-0046bec7e6bd7f4abc3eaa387f4cc61225d37b28bda2d4ff09b8153ca5b207b2","pkg-name":"StateVar","pkg-version":"1.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b8bea664120dc78f5c15d9b8c0947d51dbc58a0b63ee49971fa7caac9f3e0845","pkg-src-sha256":"ee261552912b60d8b937f0253615e310e6cc25f9c407001b3bcc2e3d55000f8b","depends":["base-4.12.0.0","stm-2.5.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"accelerate-1.4.0.0-inplace","pkg-name":"accelerate","pkg-version":"1.4.0.0","flags":{"bounds-checks":true,"debug":false,"ekg":false,"internal-checks":false,"nofib":false,"unsafe-checks":false},"style":"local","pkg-src":{"type":"local","path":"/home/david/Documents/accelerate/accelerate/."},"dist-dir":"/home/david/Documents/accelerate/accelerate/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0","components":{"lib":{"depends":["ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","array-0.5.3.0","base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","bytestring-0.10.8.2","containers-0.6.0.1","cryptonite-0.28-ada7b380853cd93e18e8e9a23ffe2709ae338a7cd744e129a587c0e6b6485a34","deepseq-1.4.4.0","directory-1.3.3.0","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","filepath-1.4.2.1","ghc-prim-0.5.3","half-0.3.1-4248d95109113855c9f44a4598289748bb8f46212e795346865801ca48a30322","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","hashtables-1.2.4.1-512de9cdc2f40439417f263511cb979eb5f39ca8ef3927a81de889c93a1ade72","hedgehog-1.0.4-06641a98dcdc4c84178b117f8f65583f406af8c30db69f576614030ee08feb02","lens-4.19.2-ab0615dd1a27e02d8c184199a5c3664edd8d1a9dfaaf3a74581b4509c6e494d3","limp-0.3.2.3-eb62d44c2b7ea4c4f7b09ad326809ed302a2fe4b1485b1833897532216848a12","mtl-2.2.2","prettyprinter-1.7.0-69d28be7a6fafe3d71f4925187665c05cd407d3f5af64dc133e01d0de65d5290","prettyprinter-ansi-terminal-1.1.2-8b679a07c9562d4cd3f3ec311369fea2bfd662ad91bae38f20ae0e707d86c33f","primitive-0.7.1.0-28b091cea41d7282ad626cd51a95ffad2a9aa334ebdaac780b5306b0b0febc99","tasty-1.4.1-8a13bb594e369c7d055084c96f1477931d99308462b55770c957e7ef88b02607","template-haskell-2.14.0.0","terminal-size-0.3.2.1-b97433ea81aabedc946b5f86e36f83f83daa76eab8ce1712ada904c367e919fb","text-1.2.3.1","transformers-0.5.6.2","unique-0.0.1-e7f1ed4008a647135505dd4cc7a7baabd340e13d5154571071760f8a44d93684","unix-2.7.2.2","unordered-containers-0.2.13.0-7f61973470b572a88cca37276cf0fde1a9bf8e8cb66960e599621b3de67b1880","vector-0.12.2.0-ba2c12a3d063874f084e1f8f6e0c872ced0b9716ec5944cb494e413c00c913f3"],"exe-depends":[]},"test:doctest":{"depends":["base-4.12.0.0","doctest-0.18-03f240c5b126eec7a956f182f264e0ad3ae1d3203d6307e191b81c162e2d2005"],"exe-depends":[],"bin-file":"/home/david/Documents/accelerate/accelerate/dist-newstyle/build/x86_64-linux/ghc-8.6.5/accelerate-1.4.0.0/build/doctest/doctest"},"setup":{"depends":["Cabal-2.4.0.1","base-4.12.0.0","cabal-doctest-1.0.8-593778e745e6393cc58293840b951314820d8bc1ab25f96aad3445868bb981f1"],"exe-depends":[]}}},{"type":"configured","id":"adjunctions-4.4-d43c83ee678a5c95f901f003ba1a2e91ad1a8f0e053084f3e1fd576a2310b483","pkg-name":"adjunctions","pkg-version":"4.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2738dd5f5d5e93749adb14a05472e58a96a75d0f299e46371c6f46dc4e97daf9","pkg-src-sha256":"507c2ef55337ae61c805f8cbc1213dfd7d2b85187342675d662254b8d8a16ae9","depends":["array-0.5.3.0","base-4.12.0.0","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","free-5.1.6-3de4967bde585ab6874ef936dd6406d1182da7a9cb9f891723431cc1e966f06f","mtl-2.2.2","profunctors-5.6.1-8b1eb813b415c7af6d87644c784d962e946c0ac592d3711f4f0e74131b7b1cf6","semigroupoids-5.3.5-032179f8de515b837a06dba443fd034c52a7b37e445f572a39a428dbd3ec9432","semigroups-0.19.1-74d4bedbcdaaeaf0ff6ccc2896cb4634290a9c96a959f63cd5a433049b5e7505","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47","void-0.7.3-ac297fe550342f1c97ffd1f01cce6b0908f0851221655cb4827ac61e2cd6530f"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","pkg-name":"ansi-terminal","pkg-version":"0.11","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"97470250c92aae14c4c810d7f664c532995ba8910e2ad797b29f22ad0d2d0194","pkg-src-sha256":"c6611b9e51add41db3f79eac30066c06b33a6ca2a09e586b4b361d7f98303793","depends":["base-4.12.0.0","colour-2.3.5-7cc4ff67f62b39f31668a50554a26aea929c746c154f83be89c7eaed763b8428"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-wl-pprint-0.6.9-708969db8439fa71aeb4f0da5e66167ab6eb5f6209a8f8d3bd8260ee4f535842","pkg-name":"ansi-wl-pprint","pkg-version":"0.6.9","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"20d30674f137d43aa0279c2c2cc5e45a5f1c3c57e301852494906158b6313bf7","pkg-src-sha256":"a7b2e8e7cd3f02f2954e8b17dc60a0ccd889f49e2068ebb15abfa1d42f7a4eac","depends":["ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.3.0","pkg-name":"array","pkg-version":"0.5.3.0","depends":["base-4.12.0.0"]},{"type":"configured","id":"async-2.2.2-d821efe0c7dce18409389aa2f56f54967d3cf730dcc0b01f8f2a56acf0049649","pkg-name":"async","pkg-version":"2.2.2","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd","pkg-src-sha256":"4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff","depends":["base-4.12.0.0","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.12.0.0","pkg-name":"base","pkg-version":"4.12.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base-compat-0.11.2-1caaa7513a4e3c93c4fc555e89de29bbea64323f986b9a23f81bf12923e73b5a","pkg-name":"base-compat","pkg-version":"0.11.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f95374022a56e8c74a289e2b70ec50a1365f58b5f1f50f5c7f0fc14edf88f30e","pkg-src-sha256":"53a6b5145442fba5a4bad6db2bcdede17f164642b48bc39b95015422a39adbdb","depends":["base-4.12.0.0","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","pkg-name":"base-orphans","pkg-version":"0.8.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9a70dc95761ab9a9d49a038a4599b7b7945d486d80ed1678f347445bc336f3e0","pkg-src-sha256":"37b2b59356c03400a2d509862677393c5ff706a0aabf826c104f6fe03d93bbb3","depends":["base-4.12.0.0","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"basement-0.0.11-cccd7f7c3ab06adc52b84f1f1e70e61a5e0d6511ee309845763b739f6cf2f6bd","pkg-name":"basement","pkg-version":"0.0.11","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"af43e2e334e515b52ca309919b135c51b5e9411e6d4c68d0e8950d61eb5f25d1","pkg-src-sha256":"67582b3475a5547925399f719df21f8bbbd0ca4d4db27795c22a474f8ee6346b","depends":["base-4.12.0.0","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bifunctors-5.5.10-947a7083a2e1f36460e233baca5a863f48e01cdd8fe2039a62ebc519f831a695","pkg-name":"bifunctors","pkg-version":"5.5.10","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"52ae8b959de7bb2d5ec38750b9bc2782c90b5bf48805d635eb6ac0cfeb5b1bd6","pkg-src-sha256":"e7729cfd8b6af5cecd7dd509e4e493eec0f1522876cc0ccf4f5805495c33a90d","depends":["base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","template-haskell-2.14.0.0","th-abstraction-0.4.2.0-487b1b2d0b92f50fcf3ae52554f1d7e3d38e80b3d45a5465329fb87f09dd359a","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.6.0","pkg-name":"binary","pkg-version":"0.8.6.0","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1"]},{"type":"pre-existing","id":"bytestring-0.10.8.2","pkg-name":"bytestring","pkg-version":"0.10.8.2","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-doctest-1.0.8-593778e745e6393cc58293840b951314820d8bc1ab25f96aad3445868bb981f1","pkg-name":"cabal-doctest","pkg-version":"1.0.8","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8bd1d614fb65f0d52609da30bf8e5ec71a4b6adf8ff5610edb3cb4d114576117","pkg-src-sha256":"2026a6a87d410202ce091412ca6bc33c5aca787025326b4a3d13425a23392e0e","depends":["Cabal-2.4.0.1","base-4.12.0.0","directory-1.3.3.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"call-stack-0.3.0-e3ddc570d8ed886058d40d4c379a5ff1494807348310c44f0fb259a70ddc682d","pkg-name":"call-stack","pkg-version":"0.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dc369179410fd39542efde04778d1c4a18a015b3cf4b1703d9c88e07d58ece20","pkg-src-sha256":"b80e8de2b87f01922b23b328655ad2f843f42495f3e1033ae907aade603c716a","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"clock-0.8.2-cda2ac8ee430f9f697750298be251db80d776a654a48095f9467f35fb0b128f8","pkg-name":"clock","pkg-version":"0.8.2","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"473ffd59765cc67634bdc55b63c699a85addf3a024089073ec2a862881e83e2a","pkg-src-sha256":"0b5db110c703e68b251d5883253a934b012110b45393fc65df1b095eb9a4e461","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"code-page-0.2.1-8ebeddfa94e827061617764dd89112262c711f7ba88d8ba607112f021838ec91","pkg-name":"code-page","pkg-version":"0.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fe596b0f421abd2894fdb7049b3d76230eb1de6e04e9f635e2695dd55ded856e","pkg-src-sha256":"b2f90e19c61ed8a6ff7295f7f123d4a9913c790d4cf2c6029bc299293fdb2aaa","depends":["base-4.12.0.0"],"exe-depends":["hsc2hs-0.68.7-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"],"component-name":"lib"},{"type":"configured","id":"colour-2.3.5-7cc4ff67f62b39f31668a50554a26aea929c746c154f83be89c7eaed763b8428","pkg-name":"colour","pkg-version":"2.3.5","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b27db0a3ad40d70bdbd8510a104269f8707592e80757a1abc66a22ba25e5a42f","pkg-src-sha256":"3b8d471979617dce7c193523743c9782df63433d8e87e3ef6d97922e0da104e7","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","pkg-name":"comonad","pkg-version":"5.0.8","flags":{"containers":true,"distributive":true,"indexed-traversable":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a3a140be7a21d6ba16bf9102bf4c79455ff3213679311587bac45ba0723c8d7a","pkg-src-sha256":"ef6cdf2cc292cc43ee6aa96c581b235fdea8ab44a0bffb24dc79ae2b2ef33d13","depends":["base-4.12.0.0","containers-0.6.0.1","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","indexed-traversable-0.1.1-13aa54faecd1a87dfbe4052fc963730d5d5668fcd9c81b8278397ca2c5da192a","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"concurrent-output-1.10.12-868857b96d5638053d4145a134c7537d3ec65b9974df4c3d7e08d57c8a426451","pkg-name":"concurrent-output","pkg-version":"1.10.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50e14131c486611055e2fa4f01a2ed03e63051e6d6707650f0a8f2f4ca618477","pkg-src-sha256":"87f8a1cf54e6eaf146750fa6bf11aa2620da496073cb6c3dc8f697169eba3c20","depends":["ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","async-2.2.2-d821efe0c7dce18409389aa2f56f54967d3cf730dcc0b01f8f2a56acf0049649","base-4.12.0.0","directory-1.3.3.0","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","process-1.6.5.0","stm-2.5.0.0","terminal-size-0.3.2.1-b97433ea81aabedc946b5f86e36f83f83daa76eab8ce1712ada904c367e919fb","text-1.2.3.1","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"constraints-0.12-bacb251a982b63399656ac1289da2603b05629ec0ee19376a8f305d8bca534b1","pkg-name":"constraints","pkg-version":"0.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"71c7999d7fa01d8941f08d37d4c107c6b1bcbd0306e234157557b9b096b7f1be","pkg-src-sha256":"f26b531a15f013f15b4b5df46c4f89b13927253a4195494c50320adf05760223","depends":["base-4.12.0.0","binary-0.8.6.0","deepseq-1.4.4.0","ghc-prim-0.5.3","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","mtl-2.2.2","semigroups-0.19.1-74d4bedbcdaaeaf0ff6ccc2896cb4634290a9c96a959f63cd5a433049b5e7505","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47","type-equality-1-11b9772b383a23cba460d847086421d04e9376cc403f8df1d29ea22db830bd5a"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.0.1","pkg-name":"containers","pkg-version":"0.6.0.1","depends":["array-0.5.3.0","base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"configured","id":"contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","pkg-name":"contravariant","pkg-version":"1.5.3","flags":{"semigroups":true,"statevar":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e59a7742e725f94fc6578e3593cd3f6d4e3d46a9510c3a782e5fe5e5f238e3ce","pkg-src-sha256":"44536f0e331fde471271937323dc90409e95d47f57e42657fdaf242a0fd65dc1","depends":["StateVar-1.2.1-0046bec7e6bd7f4abc3eaa387f4cc61225d37b28bda2d4ff09b8153ca5b207b2","base-4.12.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cryptonite-0.28-ada7b380853cd93e18e8e9a23ffe2709ae338a7cd744e129a587c0e6b6485a34","pkg-name":"cryptonite","pkg-version":"0.28","flags":{"check_alignment":false,"integer-gmp":true,"old_toolchain_inliner":false,"support_aesni":true,"support_deepseq":true,"support_pclmuldq":false,"support_rdrand":true,"support_sse":false,"use_target_attributes":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6c75e62b4c655d4cb1bcbb80d01430d136aac32bd6962c86c84738935cc8f9d","pkg-src-sha256":"74ad886ae3f7cd6cadecb596707e49df37b0170ceed313e382bd15b13132a5db","depends":["base-4.12.0.0","basement-0.0.11-cccd7f7c3ab06adc52b84f1f1e70e61a5e0d6511ee309845763b739f6cf2f6bd","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","memory-0.15.0-b988537b717d361c3cdc26db168316fcb76723c9328d20e3bfd69d476ba91a24"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"pre-existing","id":"directory-1.3.3.0","pkg-name":"directory","pkg-version":"1.3.3.0","depends":["base-4.12.0.0","filepath-1.4.2.1","time-1.8.0.2","unix-2.7.2.2"]},{"type":"configured","id":"distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","pkg-name":"distributive","pkg-version":"0.6.2.1","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2823eff05c6b093492efe804027e7cf82757221f934964c76106ac3248899b89","pkg-src-sha256":"d7351392e078f58caa46630a4b9c643e1e2e9dddee45848c5c8358e7b1316b91","depends":["base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"doctest-0.18-03f240c5b126eec7a956f182f264e0ad3ae1d3203d6307e191b81c162e2d2005","pkg-name":"doctest","pkg-version":"0.18","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"03987c50b1793025ddd762f5401c0c775ff0665a4500b4b45e88439ebe3fb5b4","pkg-src-sha256":"a40fe6ff34982c490bbd9067103f249d226aed43471a652ef03bd83c9eac19fb","depends":["base-4.12.0.0","base-compat-0.11.2-1caaa7513a4e3c93c4fc555e89de29bbea64323f986b9a23f81bf12923e73b5a","code-page-0.2.1-8ebeddfa94e827061617764dd89112262c711f7ba88d8ba607112f021838ec91","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","ghc-8.6.5","ghc-paths-0.1.0.12-eebb34fa2eaf0d6ef956df167aea2983f49309b0f4a9807108eda412f402bb10","process-1.6.5.0","syb-0.7.2.1-ca83c9b22dc5c4abaf7a4ae7afb4a3310335a71460845f009be78b4c07f3c5db","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"doctest-0.18-cea5f5b10c39e7f8ac39019994c89c6870c9c34d843f39dbdd1da369b5cb33c3","pkg-name":"doctest","pkg-version":"0.18","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"03987c50b1793025ddd762f5401c0c775ff0665a4500b4b45e88439ebe3fb5b4","pkg-src-sha256":"a40fe6ff34982c490bbd9067103f249d226aed43471a652ef03bd83c9eac19fb","depends":["base-4.12.0.0","base-compat-0.11.2-1caaa7513a4e3c93c4fc555e89de29bbea64323f986b9a23f81bf12923e73b5a","code-page-0.2.1-8ebeddfa94e827061617764dd89112262c711f7ba88d8ba607112f021838ec91","deepseq-1.4.4.0","directory-1.3.3.0","doctest-0.18-03f240c5b126eec7a956f182f264e0ad3ae1d3203d6307e191b81c162e2d2005","filepath-1.4.2.1","ghc-8.6.5","ghc-paths-0.1.0.12-eebb34fa2eaf0d6ef956df167aea2983f49309b0f4a9807108eda412f402bb10","process-1.6.5.0","syb-0.7.2.1-ca83c9b22dc5c4abaf7a4ae7afb4a3310335a71460845f009be78b4c07f3c5db","transformers-0.5.6.2"],"exe-depends":[],"component-name":"exe:doctest","bin-file":"/home/david/.cabal/store/ghc-8.6.5/doctest-0.18-cea5f5b10c39e7f8ac39019994c89c6870c9c34d843f39dbdd1da369b5cb33c3/bin/doctest"},{"type":"configured","id":"erf-2.0.0.0-5785ca7b5cf90cd7074ae1a9b590e39fc28929b9a76c5fec99ceafba0f4e0184","pkg-name":"erf","pkg-version":"2.0.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"11c5d3747d17b589009cbe9656ca792e4b5b2560d4aa44f6f1e80044794b1a8b","pkg-src-sha256":"24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337","components":{"lib":{"depends":["base-4.12.0.0"],"exe-depends":[]}}},{"type":"configured","id":"exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","pkg-name":"exceptions","pkg-version":"0.10.4","flags":{"transformers-0-4":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"1729ef26a611ae78aa58cdd34192aff710cbaa6d631dd042ddfb63556d00b52c","pkg-src-sha256":"4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf","depends":["base-4.12.0.0","mtl-2.2.2","stm-2.5.0.0","template-haskell-2.14.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.12.0.0"]},{"type":"configured","id":"free-5.1.6-3de4967bde585ab6874ef936dd6406d1182da7a9cb9f891723431cc1e966f06f","pkg-name":"free","pkg-version":"5.1.6","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8289b615eeeedd0b95ae956f0c5ae775e35bbd16588550209ce5551af19161a6","pkg-src-sha256":"cc7dd8440c446e2ab4a960e7d032fdbffd1a91bb4f3ca14605a624d4c0f7ec04","depends":["base-4.12.0.0","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","indexed-traversable-0.1.1-13aa54faecd1a87dfbe4052fc963730d5d5668fcd9c81b8278397ca2c5da192a","mtl-2.2.2","profunctors-5.6.1-8b1eb813b415c7af6d87644c784d962e946c0ac592d3711f4f0e74131b7b1cf6","semigroupoids-5.3.5-032179f8de515b837a06dba443fd034c52a7b37e445f572a39a428dbd3ec9432","template-haskell-2.14.0.0","th-abstraction-0.4.2.0-487b1b2d0b92f50fcf3ae52554f1d7e3d38e80b3d45a5465329fb87f09dd359a","transformers-0.5.6.2","transformers-base-0.4.5.2-6a832dc9c243e21334e5eaa021fcbe6c88eb398a92528d67fdf39020a6ece6cb"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-8.6.5","pkg-name":"ghc","pkg-version":"8.6.5","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","ghc-boot-8.6.5","ghc-boot-th-8.6.5","ghc-heap-8.6.5","ghci-8.6.5","hpc-0.6.0.3","process-1.6.5.0","template-haskell-2.14.0.0","terminfo-0.4.1.2","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"pre-existing","id":"ghc-boot-8.6.5","pkg-name":"ghc-boot","pkg-version":"8.6.5","depends":["base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","directory-1.3.3.0","filepath-1.4.2.1","ghc-boot-th-8.6.5"]},{"type":"pre-existing","id":"ghc-boot-th-8.6.5","pkg-name":"ghc-boot-th","pkg-version":"8.6.5","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-heap-8.6.5","pkg-name":"ghc-heap","pkg-version":"8.6.5","depends":["base-4.12.0.0","ghc-prim-0.5.3","rts"]},{"type":"configured","id":"ghc-paths-0.1.0.12-eebb34fa2eaf0d6ef956df167aea2983f49309b0f4a9807108eda412f402bb10","pkg-name":"ghc-paths","pkg-version":"0.1.0.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"85370fdc615d4be5e09d9269eebb9a3fc7017c40b1a9e0050b121d75908564bd","pkg-src-sha256":"6ecbe676d073cb07989c61ce4c5709c4e67cbefdd2d55a4095f9388b6fe2c484","components":{"lib":{"depends":["base-4.12.0.0"],"exe-depends":[]},"setup":{"depends":["Cabal-2.4.0.1","base-4.12.0.0","directory-1.3.3.0"],"exe-depends":[]}}},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"pre-existing","id":"ghci-8.6.5","pkg-name":"ghci","pkg-version":"8.6.5","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","filepath-1.4.2.1","ghc-boot-8.6.5","ghc-boot-th-8.6.5","ghc-heap-8.6.5","template-haskell-2.14.0.0","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"half-0.3.1-4248d95109113855c9f44a4598289748bb8f46212e795346865801ca48a30322","pkg-name":"half","pkg-version":"0.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5aabf5325762b2d6335b9e3f88602431af2b954e14b058bea3e93168a8e0eb53","pkg-src-sha256":"e2afc32724e11bf5c695d797b9169d9d9b2dc62a530aed31284c8187af1615d1","depends":["base-4.12.0.0","binary-0.8.6.0","deepseq-1.4.4.0","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"happy-1.20.0-9b5842b88b636826cab48ae32738d93e044b59721b9315ed090d1db406123d24","pkg-name":"happy","pkg-version":"1.20.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f99e612b29d68d784d7e193943a13466f0923de69452a2585081491efed0436b","pkg-src-sha256":"3b1d3a8f93a2723b554d9f07b2cd136be1a7b2fcab1855b12b7aab5cbac8868c","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","mtl-2.2.2"],"exe-depends":[],"component-name":"exe:happy","bin-file":"/home/david/.cabal/store/ghc-8.6.5/happy-1.20.0-9b5842b88b636826cab48ae32738d93e044b59721b9315ed090d1db406123d24/bin/happy"},{"type":"configured","id":"hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","pkg-name":"hashable","pkg-version":"1.3.0.0","flags":{"examples":false,"integer-gmp":true,"sse2":true,"sse41":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d60cad00223d46172020c136e68acef0481a47d0302b2e74b1805b4f3a446a9b","pkg-src-sha256":"822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashtables-1.2.4.1-512de9cdc2f40439417f263511cb979eb5f39ca8ef3927a81de889c93a1ade72","pkg-name":"hashtables","pkg-version":"1.2.4.1","flags":{"bounds-checking":false,"debug":false,"detailed-profiling":false,"portable":false,"sse42":false,"unsafe-tricks":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"09267f75fed6375617cfa049e28f8812b776e5c4ad811794efe150db314dcb4f","pkg-src-sha256":"0ac3bf86030eeb1dd0f3d0cd1967cb610ee9564251622371fda560bc4e7def6d","depends":["base-4.12.0.0","ghc-prim-0.5.3","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","primitive-0.7.1.0-28b091cea41d7282ad626cd51a95ffad2a9aa334ebdaac780b5306b0b0febc99","vector-0.12.2.0-ba2c12a3d063874f084e1f8f6e0c872ced0b9716ec5944cb494e413c00c913f3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"haskell-lexer-1.1-04955416430b10c93a97e13b6e73cfa1ae32e14890dd747121bcceac4add904f","pkg-name":"haskell-lexer","pkg-version":"1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9e0a7633f6bdb59004c6f3144ebfad1edb9e440fc6a94215c3a1d11bcd8656ef","pkg-src-sha256":"313a15cc643322c8badd148867ce25ca1ffc191df9e7eeec5b10bc08c4b563d5","components":{"lib":{"depends":["base-4.12.0.0"],"exe-depends":[]}}},{"type":"configured","id":"hedgehog-1.0.4-06641a98dcdc4c84178b117f8f65583f406af8c30db69f576614030ee08feb02","pkg-name":"hedgehog","pkg-version":"1.0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e7560a354c8806f3435a345486c09e7cdc55378f747895334eff3214b59a2b30","pkg-src-sha256":"bf7157d433a453587343186d739e178abf1b7a5ec916555630889cd7c104469a","depends":["ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","async-2.2.2-d821efe0c7dce18409389aa2f56f54967d3cf730dcc0b01f8f2a56acf0049649","base-4.12.0.0","bytestring-0.10.8.2","concurrent-output-1.10.12-868857b96d5638053d4145a134c7537d3ec65b9974df4c3d7e08d57c8a426451","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","erf-2.0.0.0-5785ca7b5cf90cd7074ae1a9b590e39fc28929b9a76c5fec99ceafba0f4e0184","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","lifted-async-0.10.1.2-7008113692901e2c8d7eecf32b9d5d08274591932262566b473efceed03af74e","mmorph-1.1.3-edd823c90b9487245276825ce8d0cd2897c23736517644f8fe76cbd8acaf6219","monad-control-1.0.2.3-6a7b72e53052eb20e66e5775046b797b83f7fd9392a77928f9056946a5f4c13f","mtl-2.2.2","pretty-show-1.10-dffc84e521c64e97c8f72c385ddd40071c8407ed12e3b83739e87f0e049f2904","primitive-0.7.1.0-28b091cea41d7282ad626cd51a95ffad2a9aa334ebdaac780b5306b0b0febc99","random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421","resourcet-1.2.4.2-1a8aa726639fb50ea9f7397e98a8f4e7ac6de5cd41516ca172891909993af706","stm-2.5.0.0","template-haskell-2.14.0.0","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","transformers-base-0.4.5.2-6a832dc9c243e21334e5eaa021fcbe6c88eb398a92528d67fdf39020a6ece6cb","wl-pprint-annotated-0.1.0.1-7d7da5e310a7b2229e46b1426b88bc26c36ca00d12b925b3c729072ecb4c0c4a"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"hpc-0.6.0.3","pkg-name":"hpc","pkg-version":"0.6.0.3","depends":["base-4.12.0.0","containers-0.6.0.1","directory-1.3.3.0","filepath-1.4.2.1","time-1.8.0.2"]},{"type":"configured","id":"hsc2hs-0.68.7-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6a9419c04ca31a5931c77bd129789d4ceafcd8c9275551da237df341b8944540","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.12.0.0","containers-0.6.0.1","directory-1.3.3.0","filepath-1.4.2.1","process-1.6.5.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/david/.cabal/store/ghc-8.6.5/hsc2hs-0.68.7-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144/bin/hsc2hs"},{"type":"configured","id":"indexed-traversable-0.1.1-13aa54faecd1a87dfbe4052fc963730d5d5668fcd9c81b8278397ca2c5da192a","pkg-name":"indexed-traversable","pkg-version":"0.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e330ec1ab336ee2fb1eff117ebe3480d1663396fecd981f185b7123dc7941ae1","pkg-src-sha256":"7ac36ae3153cbe7a8e99eacffd065367b87544953cc92997f424a150db468139","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"invariant-0.5.4-2c63670a391c89d20fb9b72d29ac865a6edef4250becd7860e91480b91195997","pkg-name":"invariant","pkg-version":"0.5.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"04596946f13f4ec241eae5382c3c19eefebf6a7e2e5e60a4b8187c9115f8594a","pkg-src-sha256":"b9fa0a1805dde1a4d39bed154e297a37933d2a82b295231098a76be9d60397ca","depends":["StateVar-1.2.1-0046bec7e6bd7f4abc3eaa387f4cc61225d37b28bda2d4ff09b8153ca5b207b2","array-0.5.3.0","base-4.12.0.0","bifunctors-5.5.10-947a7083a2e1f36460e233baca5a863f48e01cdd8fe2039a62ebc519f831a695","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","ghc-prim-0.5.3","profunctors-5.6.1-8b1eb813b415c7af6d87644c784d962e946c0ac592d3711f4f0e74131b7b1cf6","stm-2.5.0.0","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","template-haskell-2.14.0.0","th-abstraction-0.4.2.0-487b1b2d0b92f50fcf3ae52554f1d7e3d38e80b3d45a5465329fb87f09dd359a","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47","unordered-containers-0.2.13.0-7f61973470b572a88cca37276cf0fde1a9bf8e8cb66960e599621b3de67b1880"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"kan-extensions-5.2.1-d0e5bdff53ba415ad8bc37b270d46cdba8c83b2f2ee1766634399e7ac96dd328","pkg-name":"kan-extensions","pkg-version":"5.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"331cd40a15c27d0be9ea1d4b719fc47dba62f784a49b03394841b9a332f1abea","pkg-src-sha256":"eaa898e03bc7a1f384ebe7855ac35ebb2500d9b5746f8c4e2090c58024d29f84","depends":["adjunctions-4.4-d43c83ee678a5c95f901f003ba1a2e91ad1a8f0e053084f3e1fd576a2310b483","array-0.5.3.0","base-4.12.0.0","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","free-5.1.6-3de4967bde585ab6874ef936dd6406d1182da7a9cb9f891723431cc1e966f06f","invariant-0.5.4-2c63670a391c89d20fb9b72d29ac865a6edef4250becd7860e91480b91195997","mtl-2.2.2","profunctors-5.6.1-8b1eb813b415c7af6d87644c784d962e946c0ac592d3711f4f0e74131b7b1cf6","semigroupoids-5.3.5-032179f8de515b837a06dba443fd034c52a7b37e445f572a39a428dbd3ec9432","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"lens-4.19.2-ab0615dd1a27e02d8c184199a5c3664edd8d1a9dfaaf3a74581b4509c6e494d3","pkg-name":"lens","pkg-version":"4.19.2","flags":{"benchmark-uniplate":false,"dump-splices":false,"inlining":true,"j":false,"old-inline-pragmas":false,"safe":false,"test-doctests":true,"test-hunit":true,"test-properties":true,"test-templates":true,"trustworthy":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f84441c407bf436490cbc19b5c7497a66f5880be7023e7a9f0e205aee98239e5","pkg-src-sha256":"52f858ae3971a5104cdba5e81a27d154fda11fe65a54a4ac328c85904bdec23b","components":{"lib":{"depends":["array-0.5.3.0","base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","bifunctors-5.5.10-947a7083a2e1f36460e233baca5a863f48e01cdd8fe2039a62ebc519f831a695","bytestring-0.10.8.2","call-stack-0.3.0-e3ddc570d8ed886058d40d4c379a5ff1494807348310c44f0fb259a70ddc682d","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","filepath-1.4.2.1","free-5.1.6-3de4967bde585ab6874ef936dd6406d1182da7a9cb9f891723431cc1e966f06f","ghc-prim-0.5.3","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","kan-extensions-5.2.1-d0e5bdff53ba415ad8bc37b270d46cdba8c83b2f2ee1766634399e7ac96dd328","mtl-2.2.2","parallel-3.2.2.0-07e2835f56a87cfea43488a8a5ead0cfa2471b3d21b352a1a9673d7190b69dc1","profunctors-5.6.1-8b1eb813b415c7af6d87644c784d962e946c0ac592d3711f4f0e74131b7b1cf6","reflection-2.1.6-24c5239dd10e621688f2fa6a62b53d936be72f6eb39917e5c1694f29bd9c72e1","semigroupoids-5.3.5-032179f8de515b837a06dba443fd034c52a7b37e445f572a39a428dbd3ec9432","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","template-haskell-2.14.0.0","text-1.2.3.1","th-abstraction-0.4.2.0-487b1b2d0b92f50fcf3ae52554f1d7e3d38e80b3d45a5465329fb87f09dd359a","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47","unordered-containers-0.2.13.0-7f61973470b572a88cca37276cf0fde1a9bf8e8cb66960e599621b3de67b1880","vector-0.12.2.0-ba2c12a3d063874f084e1f8f6e0c872ced0b9716ec5944cb494e413c00c913f3"],"exe-depends":[]},"setup":{"depends":["Cabal-2.4.0.1","base-4.12.0.0","cabal-doctest-1.0.8-593778e745e6393cc58293840b951314820d8bc1ab25f96aad3445868bb981f1","filepath-1.4.2.1"],"exe-depends":[]}}},{"type":"configured","id":"lifted-async-0.10.1.2-7008113692901e2c8d7eecf32b9d5d08274591932262566b473efceed03af74e","pkg-name":"lifted-async","pkg-version":"0.10.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"525946f7f54feca4cf5207aaf56452be08a2b0d12e04e5fb5770a98b5a56b9fc","pkg-src-sha256":"bd24cb197953701507680893b84df505eb58d1c31e1d45f9a0edae43cd965713","depends":["async-2.2.2-d821efe0c7dce18409389aa2f56f54967d3cf730dcc0b01f8f2a56acf0049649","base-4.12.0.0","constraints-0.12-bacb251a982b63399656ac1289da2603b05629ec0ee19376a8f305d8bca534b1","lifted-base-0.2.3.12-4c141a856b6cdff3452d425b63b80acd2f94bf440e19aac66131dbef2f0e9109","monad-control-1.0.2.3-6a7b72e53052eb20e66e5775046b797b83f7fd9392a77928f9056946a5f4c13f","transformers-base-0.4.5.2-6a832dc9c243e21334e5eaa021fcbe6c88eb398a92528d67fdf39020a6ece6cb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"lifted-base-0.2.3.12-4c141a856b6cdff3452d425b63b80acd2f94bf440e19aac66131dbef2f0e9109","pkg-name":"lifted-base","pkg-version":"0.2.3.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e94ad0692c9c5d85c373e508f23654f2da8ac8c3e475c2b65ffbc04fb165ad69","pkg-src-sha256":"c134a95f56750aae806e38957bb03c59627cda16034af9e00a02b699474317c5","depends":["base-4.12.0.0","monad-control-1.0.2.3-6a7b72e53052eb20e66e5775046b797b83f7fd9392a77928f9056946a5f4c13f","transformers-base-0.4.5.2-6a832dc9c243e21334e5eaa021fcbe6c88eb398a92528d67fdf39020a6ece6cb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"limp-0.3.2.3-eb62d44c2b7ea4c4f7b09ad326809ed302a2fe4b1485b1833897532216848a12","pkg-name":"limp","pkg-version":"0.3.2.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d2802905557ebabe27f2146b0e4e7695998a8d5a170bfa5ab34a7a5ecc0148db","pkg-src-sha256":"884722a7e3c0a83d08ed58f114f698374633530078b0433f66efca97b76d50cb","depends":["base-4.12.0.0","containers-0.6.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"memory-0.15.0-b988537b717d361c3cdc26db168316fcb76723c9328d20e3bfd69d476ba91a24","pkg-name":"memory","pkg-version":"0.15.0","flags":{"support_basement":true,"support_bytestring":true,"support_deepseq":true,"support_foundation":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"be7024b50e876a9c3b7febaefdd81d5dc67268c58a7b4e6b3825bdc58274d88c","pkg-src-sha256":"e3ff892c1a94708954d0bb2c4f4ab81bc0f505352d95095319c462db1aeb3529","depends":["base-4.12.0.0","basement-0.0.11-cccd7f7c3ab06adc52b84f1f1e70e61a5e0d6511ee309845763b739f6cf2f6bd","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mmorph-1.1.3-edd823c90b9487245276825ce8d0cd2897c23736517644f8fe76cbd8acaf6219","pkg-name":"mmorph","pkg-version":"1.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"abfc95648fef0008f984b94137ce8e1635fb071c7bfaaa7393ba175a1b3bb12f","pkg-src-sha256":"7923f7ad6260a05aaa8175b9f2a250f5bb63187427681171bd36d29a6cf2da65","depends":["base-4.12.0.0","mtl-2.2.2","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"monad-control-1.0.2.3-6a7b72e53052eb20e66e5775046b797b83f7fd9392a77928f9056946a5f4c13f","pkg-name":"monad-control","pkg-version":"1.0.2.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a3ae888d2fed2e2a0ca33ae11e2480219e07312bccf1a02ffe2ba2e3ec5913ee","pkg-src-sha256":"6c1034189d237ae45368c70f0e68f714dd3beda715dd265b6c8a99fcc64022b1","components":{"lib":{"depends":["base-4.12.0.0","stm-2.5.0.0","transformers-0.5.6.2","transformers-base-0.4.5.2-6a832dc9c243e21334e5eaa021fcbe6c88eb398a92528d67fdf39020a6ece6cb","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47"],"exe-depends":[]}}},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.12.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"optparse-applicative-0.16.1.0-3c69dcf33827afd2a2e3444f1995bd19fbf2c8e0fc8127080dd90b26eb9db182","pkg-name":"optparse-applicative","pkg-version":"0.16.1.0","flags":{"process":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d410cc76e288b93d4ee7e06addc0381a7eaea43bcee0c3ced03f05cadec2f2fc","pkg-src-sha256":"6205278362f333c52256b9dd3edf5f8fe0f84f00cb9ee000291089f6eaccd69a","depends":["ansi-wl-pprint-0.6.9-708969db8439fa71aeb4f0da5e66167ab6eb5f6209a8f8d3bd8260ee4f535842","base-4.12.0.0","process-1.6.5.0","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"parallel-3.2.2.0-07e2835f56a87cfea43488a8a5ead0cfa2471b3d21b352a1a9673d7190b69dc1","pkg-name":"parallel","pkg-version":"3.2.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c69372af9a39a06739e1d0eaa1f2d8be6b86493a53dbbc455e7b30479c491c6a","pkg-src-sha256":"170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","deepseq-1.4.4.0","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.13.0","pkg-name":"parsec","pkg-version":"3.1.13.0","depends":["base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","text-1.2.3.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"configured","id":"pretty-show-1.10-d687cae9a086cf1624633179ef5616f02de656a271f730b4273f807cfd8e2e71","pkg-name":"pretty-show","pkg-version":"1.10","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bfef8da0ac4db4fc7f41edfec9e9a701ac206418d70702bff1e40f20d6a2b1f1","pkg-src-sha256":"307f9086e0b063d439dc4f513e36a145e8a57f23de448aefae2a6c00f6da6fd2","depends":["base-4.12.0.0","pretty-show-1.10-dffc84e521c64e97c8f72c385ddd40071c8407ed12e3b83739e87f0e049f2904"],"exe-depends":[],"component-name":"exe:ppsh","bin-file":"/home/david/.cabal/store/ghc-8.6.5/pretty-show-1.10-d687cae9a086cf1624633179ef5616f02de656a271f730b4273f807cfd8e2e71/bin/ppsh"},{"type":"configured","id":"pretty-show-1.10-dffc84e521c64e97c8f72c385ddd40071c8407ed12e3b83739e87f0e049f2904","pkg-name":"pretty-show","pkg-version":"1.10","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bfef8da0ac4db4fc7f41edfec9e9a701ac206418d70702bff1e40f20d6a2b1f1","pkg-src-sha256":"307f9086e0b063d439dc4f513e36a145e8a57f23de448aefae2a6c00f6da6fd2","depends":["array-0.5.3.0","base-4.12.0.0","filepath-1.4.2.1","ghc-prim-0.5.3","haskell-lexer-1.1-04955416430b10c93a97e13b6e73cfa1ae32e14890dd747121bcceac4add904f","pretty-1.1.3.6","text-1.2.3.1"],"exe-depends":["happy-1.20.0-9b5842b88b636826cab48ae32738d93e044b59721b9315ed090d1db406123d24"],"component-name":"lib"},{"type":"configured","id":"prettyprinter-1.7.0-69d28be7a6fafe3d71f4925187665c05cd407d3f5af64dc133e01d0de65d5290","pkg-name":"prettyprinter","pkg-version":"1.7.0","flags":{"buildreadme":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6a9569e21fa61163a7f066d23d701e23e917893e8f39733d6e617ec72787ae5f","pkg-src-sha256":"591b87ce8a5cff39d66cb1c156c7d27d04de57952f16eb3ce3afe309ac26e0a7","depends":["base-4.12.0.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"prettyprinter-ansi-terminal-1.1.2-8b679a07c9562d4cd3f3ec311369fea2bfd662ad91bae38f20ae0e707d86c33f","pkg-name":"prettyprinter-ansi-terminal","pkg-version":"1.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"90b3b7650bc5b9f0e58da43621d23c817acfc0cf5ce71244b9bd11b8c9f95e3a","pkg-src-sha256":"e26b7338b90830a126e210ec164426bd3da7d099a319d1287a40e3efce2a1799","depends":["ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","base-4.12.0.0","prettyprinter-1.7.0-69d28be7a6fafe3d71f4925187665c05cd407d3f5af64dc133e01d0de65d5290","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"primitive-0.7.1.0-28b091cea41d7282ad626cd51a95ffad2a9aa334ebdaac780b5306b0b0febc99","pkg-name":"primitive","pkg-version":"0.7.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f6357d5720c1c665096c3e011467daf443198b786a708d2ff926958a24d508d4","pkg-src-sha256":"6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0","depends":["base-4.12.0.0","deepseq-1.4.4.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.5.0","pkg-name":"process","pkg-version":"1.6.5.0","depends":["base-4.12.0.0","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"profunctors-5.6.1-8b1eb813b415c7af6d87644c784d962e946c0ac592d3711f4f0e74131b7b1cf6","pkg-name":"profunctors","pkg-version":"5.6.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8a317a45fd50ef17c517e11c3125be85382f8a8cb8637076f3915e9b00f1a9fd","pkg-src-sha256":"46dfe7a5df7985a64660e1b9aac18df4a4de9337b804a37206e9c841a17d4eac","depends":["base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","bifunctors-5.5.10-947a7083a2e1f36460e233baca5a863f48e01cdd8fe2039a62ebc519f831a695","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3337fb944048b49ada7ac70771e9040382da8dcc7058570dd6835af5cc40b822","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-495ff5a958a036b388c5fb1ec95d09b6e221914366e7c53f4e181bd8dbef71f9"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"reflection-2.1.6-24c5239dd10e621688f2fa6a62b53d936be72f6eb39917e5c1694f29bd9c72e1","pkg-name":"reflection","pkg-version":"2.1.6","flags":{"slow":false,"template-haskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"044acb7caf41a9d8246878f849baed2dffbc4582d0a1e5c7c079d4287239e970","pkg-src-sha256":"bf3e14917ebb329a53701a3cce0afe670f20037a0148dbfa5cbfa574ed6ba6cd","depends":["base-4.12.0.0","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resourcet-1.2.4.2-1a8aa726639fb50ea9f7397e98a8f4e7ac6de5cd41516ca172891909993af706","pkg-name":"resourcet","pkg-version":"1.2.4.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d57516781d1721f70aa0b9ec8ea9200ab02bf76349cb76d73ad57729302289cc","pkg-src-sha256":"17f20842043ad199961a801b6efb1233b9098eb3537f8395844268f6a223eb87","depends":["base-4.12.0.0","containers-0.6.0.1","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","mtl-2.2.2","primitive-0.7.1.0-28b091cea41d7282ad626cd51a95ffad2a9aa334ebdaac780b5306b0b0febc99","transformers-0.5.6.2","unliftio-core-0.2.0.1-2508a890d12eafb8f47f24cabe44202bd7d562a64815930cd36681e67e86553b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"semigroupoids-5.3.5-032179f8de515b837a06dba443fd034c52a7b37e445f572a39a428dbd3ec9432","pkg-name":"semigroupoids","pkg-version":"5.3.5","flags":{"comonad":true,"containers":true,"contravariant":true,"distributive":true,"tagged":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5ccdfc9937718901b2c4a6829381bc62ebd1368945f89b4afe3ec5d5beae6a12","pkg-src-sha256":"552f18e13ef347118911c950957e4adcda0a1f948e274f29ec449cc413d3c6b0","depends":["base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","bifunctors-5.5.10-947a7083a2e1f36460e233baca5a863f48e01cdd8fe2039a62ebc519f831a695","comonad-5.0.8-9afa06a8815903a4d0d4c122c38a36b791956a44854969308118d3750a975ebf","containers-0.6.0.1","contravariant-1.5.3-f5f38a5dd373774edd7f52ef707f5ae0f2d267a463934129d7d6f70b89289eff","distributive-0.6.2.1-e6fdc436739ae6a636de66cf927f34936fa91888c683d08868dd6693710602e3","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","template-haskell-2.14.0.0","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47","unordered-containers-0.2.13.0-7f61973470b572a88cca37276cf0fde1a9bf8e8cb66960e599621b3de67b1880"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"semigroups-0.19.1-74d4bedbcdaaeaf0ff6ccc2896cb4634290a9c96a959f63cd5a433049b5e7505","pkg-name":"semigroups","pkg-version":"0.19.1","flags":{"binary":true,"bytestring":true,"bytestring-builder":false,"containers":true,"deepseq":true,"hashable":true,"tagged":true,"template-haskell":true,"text":true,"transformers":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ecae129621e0d2f77bef2f01e4458c2e0567ab6e1f39579c61d7cec8058ebb0e","pkg-src-sha256":"79e761e64b862564a3470d5d356cb6b060b14452d675859aed3b2d1e14646648","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.0.3-495ff5a958a036b388c5fb1ec95d09b6e221914366e7c53f4e181bd8dbef71f9","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.12.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"configured","id":"syb-0.7.2.1-ca83c9b22dc5c4abaf7a4ae7afb4a3310335a71460845f009be78b4c07f3c5db","pkg-name":"syb","pkg-version":"0.7.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bf42655a213402215299e435c52f799e76cbec0b984cd7153d6b9af8a1c0803f","pkg-src-sha256":"1807c66f77e66786739387f0ae9f16d150d1cfa9d626afcb729f0e9b442a8d96","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","pkg-name":"tagged","pkg-version":"0.8.6.1","flags":{"deepseq":true,"transformers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"98e446479bd3fe5bdc5fa63fec2a2f6998e1bb8cb6db1dee611716f588b3ab28","pkg-src-sha256":"f5e0fcf95f0bb4aa63f428f2c01955a41ea1a42cfcf39145ed631f59a9616c02","depends":["base-4.12.0.0","deepseq-1.4.4.0","template-haskell-2.14.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-1.4.1-8a13bb594e369c7d055084c96f1477931d99308462b55770c957e7ef88b02607","pkg-name":"tasty","pkg-version":"1.4.1","flags":{"clock":true,"unix":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"69e90e965543faf0fc2c8e486d6c1d8cf81fd108e2c4541234c41490f392f94f","pkg-src-sha256":"2728f04ea61d45c665188577f0748a54ca6960200b33e4a3b10ae8dba4d4ae47","depends":["ansi-terminal-0.11-005525f13e462bd951b5fb12ef4ce0f08972af8fd71ce48b16131d38c5a25e76","base-4.12.0.0","clock-0.8.2-cda2ac8ee430f9f697750298be251db80d776a654a48095f9467f35fb0b128f8","containers-0.6.0.1","mtl-2.2.2","optparse-applicative-0.16.1.0-3c69dcf33827afd2a2e3444f1995bd19fbf2c8e0fc8127080dd90b26eb9db182","stm-2.5.0.0","tagged-0.8.6.1-566ec9ec5151c74e81541ffc7c5a0ef67de3c0429a9c31f30377e308c54d8b87","unbounded-delays-0.1.1.1-a2fb3cb6ec0258c6c79caee9aa2131ad30e23eaeafc9366083a1da51900442ab","unix-2.7.2.2","wcwidth-0.0.2-b6f8521c0b406ee88a9e108ab93f75e0d01e6fafb94c4d09b46e9fcaa8e82bca"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.14.0.0","pkg-name":"template-haskell","pkg-version":"2.14.0.0","depends":["base-4.12.0.0","ghc-boot-th-8.6.5","pretty-1.1.3.6"]},{"type":"configured","id":"terminal-size-0.3.2.1-b97433ea81aabedc946b5f86e36f83f83daa76eab8ce1712ada904c367e919fb","pkg-name":"terminal-size","pkg-version":"0.3.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7b2d8e0475a46961d07ddfb91dee618de70eff55d9ba0402ebeac1f9dcf9b18b","pkg-src-sha256":"b5c23e964756bc13914649a67d63233f59ad0a813abe7cadeb2fc9d586dc9658","depends":["base-4.12.0.0"],"exe-depends":["hsc2hs-0.68.7-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"],"component-name":"lib"},{"type":"pre-existing","id":"terminfo-0.4.1.2","pkg-name":"terminfo","pkg-version":"0.4.1.2","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"text-1.2.3.1","pkg-name":"text","pkg-version":"1.2.3.1","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"th-abstraction-0.4.2.0-487b1b2d0b92f50fcf3ae52554f1d7e3d38e80b3d45a5465329fb87f09dd359a","pkg-name":"th-abstraction","pkg-version":"0.4.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2c754cd15370f8c59c8e6c37d44428a78d0b4afc94e13b3958a1a50cd16f6e84","pkg-src-sha256":"ea06b2cda25fc4b52dac48cc23e5a756f997df8985ecaee5a554202508a11c40","depends":["base-4.12.0.0","containers-0.6.0.1","ghc-prim-0.5.3","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.8.0.2","pkg-name":"time","pkg-version":"1.8.0.2","depends":["base-4.12.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.12.0.0"]},{"type":"configured","id":"transformers-base-0.4.5.2-6a832dc9c243e21334e5eaa021fcbe6c88eb398a92528d67fdf39020a6ece6cb","pkg-name":"transformers-base","pkg-version":"0.4.5.2","flags":{"orphaninstances":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e4d8155470905ba2942033a1537fc4cf91927d1c9b34693fd57ddf3bc02334af","pkg-src-sha256":"d0c80c63fdce6a077dd8eda4f1ff289b85578703a3f1272e141d400fe23245e8","depends":["base-4.12.0.0","base-orphans-0.8.4-a550beb83d7c114ad3078c2806efe1a3d0c709772da1220bb3811f4f537ff581","stm-2.5.0.0","transformers-0.5.6.2","transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"transformers-compat-0.6.6-5c2fbe0390531b42c809368f60d2a3f67533b5c4b076c728ace7237f15670b47","pkg-name":"transformers-compat","pkg-version":"0.6.6","flags":{"five":false,"five-three":true,"four":false,"generic-deriving":true,"mtl":true,"three":false,"two":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"510709db2b12d1510d70de824ee544ca0a9e6f27aa7e299218cbacc0750b4a5e","pkg-src-sha256":"7e2e0251e5e6d28142615a4b950a3fabac9c0b7804b1ec4a4ae985f19519a9f9","depends":["base-4.12.0.0","ghc-prim-0.5.3","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"type-equality-1-11b9772b383a23cba460d847086421d04e9376cc403f8df1d29ea22db830bd5a","pkg-name":"type-equality","pkg-version":"1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f2a895a7b22384d9b43a9c6608725b2de7581e77e5b20ab9cfe3f959f6cd71a8","pkg-src-sha256":"4728b502a211454ef682a10d7a3e817c22d06ba509df114bb267ef9d43a08ce8","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unbounded-delays-0.1.1.1-a2fb3cb6ec0258c6c79caee9aa2131ad30e23eaeafc9366083a1da51900442ab","pkg-name":"unbounded-delays","pkg-version":"0.1.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d7a2a49f15bdff2a8bdbd76f9d204580ea4be5a9def500c6371d51d8111cbcbe","pkg-src-sha256":"59ad7e53bfe32ffbf0e703b31490d41d14c70e4745ed49e8adf592ed68dd6185","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unique-0.0.1-e7f1ed4008a647135505dd4cc7a7baabd340e13d5154571071760f8a44d93684","pkg-name":"unique","pkg-version":"0.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6c7a543e504cda0f3be3772980e9d0b86cc33af9a4e304456a3820f4dfa2172b","pkg-src-sha256":"6df23ca2199723332b444f6b7972ad3a3daaa5c5414e8d750caa12939bb0f4b5","depends":["base-4.12.0.0","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.12.0.0","bytestring-0.10.8.2","time-1.8.0.2"]},{"type":"configured","id":"unliftio-core-0.2.0.1-2508a890d12eafb8f47f24cabe44202bd7d562a64815930cd36681e67e86553b","pkg-name":"unliftio-core","pkg-version":"0.2.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9b3e44ea9aacacbfc35b3b54015af450091916ac3618a41868ebf6546977659a","pkg-src-sha256":"919f0d1297ea2f5373118553c1df2a9405d8b9e31a8307e829da67d4953c299a","depends":["base-4.12.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unordered-containers-0.2.13.0-7f61973470b572a88cca37276cf0fde1a9bf8e8cb66960e599621b3de67b1880","pkg-name":"unordered-containers","pkg-version":"0.2.13.0","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6310c636f92ed4908fdd0de582b6be31c2851c7b5f2ec14e9f416eb94df7a078","pkg-src-sha256":"86b01369ab8eb311383a052d389337e2cd71a63088323f02932754df4aa37b55","depends":["base-4.12.0.0","deepseq-1.4.4.0","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-0.12.2.0-ba2c12a3d063874f084e1f8f6e0c872ced0b9716ec5944cb494e413c00c913f3","pkg-name":"vector","pkg-version":"0.12.2.0","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6e81683c2c19b4aea58f1f453547cb03851b3cfd4031b8eb82abfa4643a13494","pkg-src-sha256":"17ab0b84c87859333ff681bb9f768368779677925bd589ff4baa05be3fd26b50","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","primitive-0.7.1.0-28b091cea41d7282ad626cd51a95ffad2a9aa334ebdaac780b5306b0b0febc99"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"void-0.7.3-ac297fe550342f1c97ffd1f01cce6b0908f0851221655cb4827ac61e2cd6530f","pkg-name":"void","pkg-version":"0.7.3","flags":{"safe":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"13d30f62fcdf065e595d679d4ac8b4b0c1bb1a1b73db7b5b5a8f857cb5c8a546","pkg-src-sha256":"53af758ddc37dc63981671e503438d02c6f64a2d8744e9bec557a894431f7317","depends":["base-4.12.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"wcwidth-0.0.2-b6f8521c0b406ee88a9e108ab93f75e0d01e6fafb94c4d09b46e9fcaa8e82bca","pkg-name":"wcwidth","pkg-version":"0.0.2","flags":{"cli":false,"split-base":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"77531eb6683c505c22ab3fa11bbc43d3ce1e7dac21401d4d5a19677d348bb5f3","pkg-src-sha256":"ffc68736a3bbde3e8157710f29f4a99c0ca593c41194579c54a92c62f6c12ed8","components":{"lib":{"depends":["base-4.12.0.0","containers-0.6.0.1"],"exe-depends":[]}}},{"type":"configured","id":"wl-pprint-annotated-0.1.0.1-7d7da5e310a7b2229e46b1426b88bc26c36ca00d12b925b3c729072ecb4c0c4a","pkg-name":"wl-pprint-annotated","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0b8fd3649bfe72d155a4379e4c88b7ef00408f6f4973f63333787fd2e1b5ba1e","pkg-src-sha256":"6b662b244b2e318a2923dc7057d707369a29ea4a0e721b4710eac7239cc727af","depends":["base-4.12.0.0","containers-0.6.0.1","deepseq-1.4.4.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/dist-newstyle/cache/solver-plan b/dist-newstyle/cache/solver-plan deleted file mode 100644 index a5308e861..000000000 Binary files a/dist-newstyle/cache/solver-plan and /dev/null differ diff --git a/dist-newstyle/cache/source-hashes b/dist-newstyle/cache/source-hashes deleted file mode 100644 index 6c6f511b5..000000000 Binary files a/dist-newstyle/cache/source-hashes and /dev/null differ diff --git a/dist-newstyle/cache/up-to-date b/dist-newstyle/cache/up-to-date deleted file mode 100644 index 5ed298157..000000000 Binary files a/dist-newstyle/cache/up-to-date and /dev/null differ diff --git a/dist-newstyle/packagedb/ghc-8.6.5/package.cache b/dist-newstyle/packagedb/ghc-8.6.5/package.cache deleted file mode 100644 index b3cae5cf0..000000000 Binary files a/dist-newstyle/packagedb/ghc-8.6.5/package.cache and /dev/null differ diff --git a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP.hs b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP.hs index d4dfb9d33..dc7166743 100644 --- a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP.hs +++ b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP.hs @@ -18,46 +18,52 @@ import Data.Array.Accelerate.AST.Operation import Data.Array.Accelerate.Trafo.Partitioning.ILP.Solver ( ILPSolver(solve) ) import Data.Array.Accelerate.Trafo.Partitioning.ILP.MIP - ( cbc, cplex, glpsol, gurobiCl, lpSolve, scip ) + ( MIPProvider, cbc, cplex, glpsol, gurobiCl, lpSolve, scip ) +import Data.Array.Accelerate.Trafo.Partitioning.ILP.Limp + ( LimpProvider ) import System.IO.Unsafe (unsafePerformIO) import Data.Array.Accelerate.Trafo.Partitioning.ILP.Labels (Label) import Data.Map (Map) +import Data.Proxy (Proxy(..)) import qualified Data.Array.Accelerate.Pretty.Operation as Pretty import Data.Function ((&)) -cbcFusion, gurobiFusion, cplexFusion, glpsolFusion, lpSolveFusion, scipFusion +cbcFusion, gurobiFusion, cplexFusion, glpsolFusion, lpSolveFusion, scipFusion, limpFusion :: (MakesILP op, Pretty.PrettyOp (Cluster op)) => OperationAcc op () a -> PartitionedAcc op () a -cbcFusion = ilpFusion cbc -gurobiFusion = ilpFusion gurobiCl -cplexFusion = ilpFusion cplex -glpsolFusion = ilpFusion glpsol -lpSolveFusion = ilpFusion lpSolve -scipFusion = ilpFusion scip +cbcFusion = ilpFusion (Proxy @MIPProvider) cbc +gurobiFusion = ilpFusion (Proxy @MIPProvider) gurobiCl +cplexFusion = ilpFusion (Proxy @MIPProvider) cplex +glpsolFusion = ilpFusion (Proxy @MIPProvider) glpsol +lpSolveFusion = ilpFusion (Proxy @MIPProvider) lpSolve +scipFusion = ilpFusion (Proxy @MIPProvider) scip +limpFusion = ilpFusion (Proxy @LimpProvider) () -cbcFusionF, gurobiFusionF, cplexFusionF, glpsolFusionF, lpSolveFusionF, scipFusionF +cbcFusionF, gurobiFusionF, cplexFusionF, glpsolFusionF, lpSolveFusionF, scipFusionF, limpFusionF :: (MakesILP op, Pretty.PrettyOp (Cluster op)) => OperationAfun op () a -> PartitionedAfun op () a -cbcFusionF = ilpFusionF cbc -gurobiFusionF = ilpFusionF gurobiCl -cplexFusionF = ilpFusionF cplex -glpsolFusionF = ilpFusionF glpsol -lpSolveFusionF = ilpFusionF lpSolve -scipFusionF = ilpFusionF scip +cbcFusionF = ilpFusionF (Proxy @MIPProvider) cbc +gurobiFusionF = ilpFusionF (Proxy @MIPProvider) gurobiCl +cplexFusionF = ilpFusionF (Proxy @MIPProvider) cplex +glpsolFusionF = ilpFusionF (Proxy @MIPProvider) glpsol +lpSolveFusionF = ilpFusionF (Proxy @MIPProvider) lpSolve +scipFusionF = ilpFusionF (Proxy @MIPProvider) scip +limpFusionF = ilpFusionF (Proxy @LimpProvider) () -ilpFusion :: (MakesILP op, ILPSolver s op, Pretty.PrettyOp (Cluster op)) => s -> OperationAcc op () a -> PartitionedAcc op () a +ilpFusion :: (MakesILP op, ILPSolver provider s op, Pretty.PrettyOp (Cluster op)) => Proxy provider -> s -> OperationAcc op () a -> PartitionedAcc op () a ilpFusion = ilpFusion' makeFullGraph reconstruct -ilpFusionF :: (MakesILP op, ILPSolver s op, Pretty.PrettyOp (Cluster op)) => s -> OperationAfun op () a -> PartitionedAfun op () a +ilpFusionF :: (MakesILP op, ILPSolver provider s op, Pretty.PrettyOp (Cluster op)) => Proxy provider -> s -> OperationAfun op () a -> PartitionedAfun op () a ilpFusionF = ilpFusion' makeFullGraphF reconstructF -ilpFusion' :: (MakesILP op, ILPSolver s op) +ilpFusion' :: (MakesILP op, ILPSolver provider s op) => (x -> (Information op, Map Label (Construction op))) -> (Graph -> [ClusterLs] -> Map Label [ClusterLs] -> Map Label (Construction op) -> y) + -> Proxy provider -> s -> x -> y -ilpFusion' k1 k2 s acc = fusedAcc +ilpFusion' k1 k2 provider s acc = fusedAcc where (info@(Info graph _ _), constrM') = k1 acc constrM = backendConstruc solution constrM' @@ -66,7 +72,7 @@ ilpFusion' k1 k2 s acc = fusedAcc interpreted = interpretSolution solution (labelClusters, labelClustersM) = splitExecs interpreted constrM fusedAcc = k2 graph labelClusters labelClustersM constrM - solve' x = unsafePerformIO (solve s x) & \case + solve' x = unsafePerformIO (solve provider s x) & \case Nothing -> error "Accelerate: No ILP solution found" Just y -> y diff --git a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Limp.hs b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Limp.hs new file mode 100644 index 000000000..2b0b0463c --- /dev/null +++ b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Limp.hs @@ -0,0 +1,230 @@ +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE InstanceSigs #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE UndecidableInstances #-} +module Data.Array.Accelerate.Trafo.Partitioning.ILP.Limp (LimpProvider) where + +import Data.Array.Accelerate.Trafo.Partitioning.ILP.Graph (MakesILP, Var, BackendVar) +import Data.Array.Accelerate.Trafo.Partitioning.ILP.Solver + +import qualified Numeric.Limp.Canon as L +import qualified Numeric.Limp.Rep as L (IntDouble, Assignment(..), Z(..), R(..)) +import qualified Numeric.Limp.Solve.Simplex.StandardForm as L (standard) +import qualified Numeric.Limp.Solve.Simplex.Maps as L (simplex, assignment) +import qualified Numeric.Limp.Solve.Branch.Simple as L (branch) + +import Data.Bifunctor (bimap, second) +import Data.List (inits, tails, foldl') +import qualified Data.Map.Strict as Map +import Data.Map.Strict (Map) +import Data.Proxy (Proxy) +import qualified Data.Set as Set +import Data.Void (Void) + +-- import qualified Debug.Trace + + +data LimpProvider + +instance MakesILP op => ILPSolver LimpProvider () op where + solve :: Proxy LimpProvider -> s -> ILP op -> IO (Maybe (Solution op)) + solve _ _ ilp = + let (SaneILP dir obj preConstrs, equlog) = eliminateEqualities (toSane ilp) + (objExpr, _objConst) = exprToLimp obj + (constrs, bounds) = splitOutBounds preConstrs + objMultiplier = case dir of Maximise -> -1 + Minimise -> 1 + progVars = Set.toList $ allvars obj <> allvarsC preConstrs + definfbounds = Map.fromList [(Left v, (Nothing, Nothing)) | v <- progVars] + program = L.Program + { L._objective = case objExpr of L.Linear m -> L.Linear ((* objMultiplier) <$> m) + , L._constraints = L.Constraint (map constraintToLimp constrs) + , L._bounds = boundsToLimp bounds <> definfbounds -- note: left-biased union + } + in return $ + -- Debug.Trace.traceShow (SaneILP dir obj preConstrs) $ + -- Debug.Trace.trace ("Equalities:\n" ++ unlines (map show equlog)) $ + restoreEqus equlog . zeroMissingVars progVars . unlimpify . fst + <$> L.branch (fmap L.assignment . L.simplex . L.standard) program + where + allvars (Expr terms _) = Map.keysSet terms + allvarsC l = foldMap (\(e1, _, e2) -> allvars e1 <> allvars e2) l + zeroMissingVars vars sol = sol <> Map.fromList (zip vars (repeat 0)) + restoreEqus equlog sol = + -- Debug.Trace.trace ("Solution:\n" ++ show sol) $ + foldr restoreEquality sol equlog + +data SaneILP op = SaneILP OptDir (Expr op) [(Expr op, Rel, Expr op)] +deriving instance Show (BackendVar op) => Show (SaneILP op) +data Expr op = Expr (Map (Var op) Int) Int +deriving instance Show (BackendVar op) => Show (Expr op) +data Rel = RLE | REQ | RGE + deriving (Show) + +instance Ord (BackendVar op) => Semigroup (Expr op) where + Expr m1 c1 <> Expr m2 c2 = Expr (Map.unionWith (+) m1 m2) (c1 + c2) +instance Ord (BackendVar op) => Monoid (Expr op) where + mempty = Expr mempty 0 + +negExpr :: Expr op -> Expr op +negExpr (Expr terms cnst) = Expr (negate <$> terms) (-cnst) + +toSane :: Ord (BackendVar op) => ILP op -> SaneILP op +toSane (ILP dir target constrs bnds n) = + SaneILP dir (saneExpr target) (saneConstrs constrs ++ saneBounds bnds) + where + saneExpr :: Ord (BackendVar op) => Expression op -> Expr op + saneExpr (Constant (Number f)) = Expr mempty (f n) + saneExpr (e1 :+ e2) = saneExpr e1 <> saneExpr e2 + saneExpr (Number f :* var) = Expr (Map.singleton var (f n)) 0 + + saneConstrs :: Ord (BackendVar op) => Constraint op -> [(Expr op, Rel, Expr op)] + saneConstrs (e1 :<= e2) = pure (saneExpr e1, RLE, saneExpr e2) + saneConstrs (e1 :>= e2) = pure (saneExpr e1, RGE, saneExpr e2) + saneConstrs (e1 :== e2) = pure (saneExpr e1, REQ, saneExpr e2) + saneConstrs (c1 :&& c2) = saneConstrs c1 <> saneConstrs c2 + saneConstrs TrueConstraint = mempty + + saneBounds :: Ord (BackendVar op) => Bounds op -> [(Expr op, Rel, Expr op)] + saneBounds (Binary v) = saneBounds (Lower 0 v) <> saneBounds (Upper v 1) + saneBounds (LowerUpper a v b) = saneBounds (Lower a v) <> saneBounds (Upper v b) + saneBounds (Lower a v) = pure (Expr mempty (fromIntegral a), RLE, Expr (Map.singleton v 1) 0) + saneBounds (Upper v b) = pure (Expr (Map.singleton v 1) 0, RLE, Expr mempty (fromIntegral b)) + saneBounds (a :<> b) = saneBounds a <> saneBounds b + saneBounds NoBounds = mempty + +exprToLimp :: Ord (BackendVar op) => Expr op -> (L.Linear (Var op) Void L.IntDouble, Int) +exprToLimp (Expr terms cnst) = (exprToLimp' terms, cnst) + +exprToLimp' :: Ord (BackendVar op) => Map (Var op) Int -> L.Linear (Var op) Void L.IntDouble +exprToLimp' terms = L.Linear (Map.mapKeys Left (fromIntegral <$> terms)) + +constraintToLimp :: Ord (BackendVar op) => (Expr op, Rel, Expr op) -> L.Constraint1 (Var op) Void L.IntDouble +constraintToLimp (e1, RLE, e2) = + -- (Expr terms 0) <= -cnst + let Expr terms cnst = e1 <> negExpr e2 + in L.C1 Nothing (exprToLimp' terms) (Just (L.R (fromIntegral (-cnst)))) +constraintToLimp (e1, RGE, e2) = constraintToLimp (e2, RLE, e1) +constraintToLimp (_, REQ, _) = error "Equalities should be gone by now" + +boundsToLimp :: Ord (BackendVar op) + => Map (Var op) (Maybe Int, Maybe Int) + -> Map (Either (Var op) Void) (Maybe (L.R L.IntDouble), Maybe (L.R L.IntDouble)) +boundsToLimp = Map.mapKeys Left . Map.map (bimap (fmap fromIntegral) (fmap fromIntegral)) + +splitOutBounds :: Ord (BackendVar op) + => [(Expr op, Rel, Expr op)] + -> ([(Expr op, Rel, Expr op)], Map (Var op) (Maybe Int, Maybe Int)) +splitOutBounds = + foldr (bimap2 (++) + (Map.unionWith (bimap2 (combine max) (combine min))) + . discriminate) + ([], mempty) + where + combine :: (a -> a -> a) -> Maybe a -> Maybe a -> Maybe a + combine _ Nothing x = x + combine _ x Nothing = x + combine g (Just x) (Just y) = Just (g x y) + + discriminate :: Ord (BackendVar op) + => (Expr op, Rel, Expr op) + -> ([(Expr op, Rel, Expr op)], Map (Var op) (Maybe Int, Maybe Int)) + discriminate (lhs, RGE, rhs) = discriminate (rhs, RLE, lhs) + discriminate (lhs, RLE, rhs) = + -- (Expr terms cnst) <= 0 + -- (Expr terms 0) <= rhs' + let Expr terms cnst = lhs <> negExpr rhs + rhs' = -cnst + in case Map.assocs terms of + [(var, coef)] -> + -- coef * var <= rhs' + case compare coef 0 of + LT -> + -- -coef * var >= -rhs' and -coef > 0 + -- var >= -rhs' / -coef + ([], Map.singleton var (Just ((-rhs') `ceilDiv` (-coef)), Nothing)) + where ceilDiv a b = (a + b - 1) `div` b -- requires b > 0 + EQ -> + -- 0 * var <= rhs' + if rhs' >= 0 then ([], mempty) + else error "limp convert: Unsatisfiable absurd inequality" + GT -> + -- coef * var <= rhs' and coef > 0 + -- var <= rhs' / coef + ([], Map.singleton var (Nothing, Just (rhs' `div` coef))) + _ -> + -- if it's not a single term, just preserve it as a constraint + ([(lhs, RLE, rhs)], mempty) + discriminate (_, REQ, _) = error "Equalities should be gone by now" + +data Equality op = TrivialEquality | Equality (Var op) (Expr op) +deriving instance Show (BackendVar op) => Show (Equality op) + +solveEquality :: Ord (BackendVar op) => Expr op -> Expr op -> Equality op +solveEquality e1 e2 = + -- e1 = e2 <=> e = e1 - e2 = 0 + let Expr terms cnst = e1 <> negExpr e2 + in if | Map.null terms + -> if cnst == 0 then TrivialEquality + else error "limp convert: Unsatisfiable absurd equality" + | let terms' = Map.assocs terms + , (pre, (var, coef), post) : _ <- [x | x@(_, (_, coef), _) <- splits terms' + , abs coef == 1] + , let restexpr = Expr (Map.fromList (pre ++ post)) cnst + -> Equality var + (if coef == 1 then negExpr restexpr else restexpr) + | otherwise + -> error "limp convert: Unsupported equality with no 1-coefficient variables" + +substitute :: Ord (BackendVar op) => Equality op -> SaneILP op -> SaneILP op +substitute equ (SaneILP dir target constrs) = + SaneILP dir (subL equ target) + (map (\(lhs, rel, rhs) -> (subL equ lhs, rel, subL equ rhs)) constrs) + where + subL TrivialEquality e = e + subL (Equality var def) (Expr terms cnst) = + let subTerm (v, coef) + | v == var = mulExpr coef def + | otherwise = Expr (Map.singleton v coef) 0 + in foldMap subTerm (Map.assocs terms) <> Expr mempty cnst + + mulExpr n (Expr m cnst) = Expr (Map.map (n*) m) (n * cnst) + +-- Returns equalities substituted, in order of substitution. That means: to restore all +-- original variables, restore the equalities from the tail to the head. +eliminateEqualities :: Ord (BackendVar op) => SaneILP op -> (SaneILP op, [Equality op]) +eliminateEqualities ilp@(SaneILP dir target constrs) = + case [x | x@(_, (_, REQ, _), _) <- splits constrs] of + [] -> (ilp, []) + (pre, (lhs, _, rhs), post) : _ -> + let equ = solveEquality lhs rhs + in second (equ:) $ + eliminateEqualities (substitute equ (SaneILP dir target (pre ++ post))) + +restoreEquality :: (Ord (BackendVar op), Show (BackendVar op)) + => Equality op -> Solution op -> Solution op +restoreEquality TrivialEquality sol = sol +restoreEquality (Equality var def) sol = + Map.insertWith (error "Variable substituted away is still present?") + var (compute def sol) sol + +compute :: (Ord (BackendVar op), Show (BackendVar op)) + => Expr op -> Solution op -> Int +compute (Expr terms cnst) sol = foldl' (+) cnst (map computeTerm (Map.assocs terms)) + where computeTerm (v, coef) = case Map.lookup v sol of + Nothing -> error $ "Variable used in equality not present in solution: " ++ show v + Just value -> coef * value + +unlimpify :: L.Assignment (Var op) Void L.IntDouble -> Solution op +unlimpify (L.Assignment zvarmap rvarmap) + | Map.null rvarmap = Map.map (\(L.Z x) -> x) zvarmap + | otherwise = error "Real variables found in Limp ILP solution" + +bimap2 :: (a -> b -> c) -> (d -> e -> f) -> (a, d) -> (b, e) -> (c, f) +bimap2 f g (x, y) (x', y') = (f x x', g y y') + +splits :: [a] -> [([a], a, [a])] +splits l = zip3 (inits l) l (tail (tails l)) diff --git a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/MIP.hs b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/MIP.hs index 5f72d6b20..d516d76cd 100644 --- a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/MIP.hs +++ b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/MIP.hs @@ -13,6 +13,7 @@ {-# LANGUAGE InstanceSigs #-} module Data.Array.Accelerate.Trafo.Partitioning.ILP.MIP ( + MIPProvider, -- Exports default paths to 6 solvers, as well as an instance to ILPSolver for all of them cbc, cplex, glpsol, gurobiCl, lpSolve, scip ) where @@ -33,15 +34,18 @@ import Data.Bifunctor (bimap, first) import Numeric.Optimization.MIP.Solver ( cbc, cplex, glpsol, gurobiCl, lpSolve, scip ) import Data.Maybe (mapMaybe) +import Data.Proxy import Control.Monad.State ( State, gets, modify, runState ) import Control.Monad.Reader ( Reader, asks, runReader ) import Lens.Micro.Mtl ( zoom ) import Lens.Micro ( _2 ) import qualified Debug.Trace -instance (MakesILP op, MIP.IsSolver s IO) => ILPSolver s op where - solve :: s -> ILP op -> IO (Maybe (Solution op)) - solve s (ILP dir obj constr bnds n) = Debug.Trace.traceShowId . makeSolution names <$> MIP.solve s options problem +data MIPProvider + +instance (MakesILP op, MIP.IsSolver s IO) => ILPSolver MIPProvider s op where + solve :: Proxy MIPProvider -> s -> ILP op -> IO (Maybe (Solution op)) + solve _ s (ILP dir obj constr bnds n) = Debug.Trace.traceShowId . makeSolution names <$> MIP.solve s options problem where options = MIP.SolveOptions{ MIP.solveTimeLimit = Nothing , MIP.solveLogger = putStrLn . ("AccILPSolver: " ++) diff --git a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Solver.hs b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Solver.hs index cab6c210b..cfcbcc49b 100644 --- a/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Solver.hs +++ b/src/Data/Array/Accelerate/Trafo/Partitioning/ILP/Solver.hs @@ -13,6 +13,7 @@ module Data.Array.Accelerate.Trafo.Partitioning.ILP.Solver where import qualified Data.Map as M +import Data.Proxy (Proxy) -- Uses an hs-boot file to break an unfortunate cyclic import situation with D.A.A.T.P.ILP.Graph: -- `ILPSolver` references `Var` in type signatures, `Var` contains `BackendVar`, -- `BackendVar` is in the class `MakesILP`, which references `Information`, @@ -21,11 +22,15 @@ import qualified Data.Map as M import {-# SOURCE #-} Data.Array.Accelerate.Trafo.Partitioning.ILP.Graph ( Var, MakesILP ) --- Currently the only instance is for MIP, which gives bindings to a couple of solvers. --- Still, this way we minimise the surface that has to interact with MIP, can more easily --- adapt if it changes, and we could easily add more bindings. -class (MakesILP op) => ILPSolver ilp op where - solve :: ilp -> ILP op -> IO (Maybe (Solution op)) +-- The `provider` selects the ILP backend: MIPProvider for MIP, and LimpProvider +-- for `limp`, a naive Haskell implementation with no external dependencies. +-- The `ilp` type parameter gives further settings for the given provider, e.g. +-- for MIP, this selects which native solver to use (cbc, gurobi, ...). +-- +-- This class minimises the surface that has to interact with MIP, so we can +-- more easily adapt if it changes, and we can easily add more bindings. +class (MakesILP op) => ILPSolver provider ilp op where + solve :: Proxy provider -> ilp -> ILP op -> IO (Maybe (Solution op)) @@ -41,7 +46,8 @@ type Solution op = M.Map (Var op) Int -- given `n` (for the number of nodes in the ILP), make an Int newtype Number = Number (Int -> Int) instance Show Number where - show (Number f) = "Number {" ++ show (f 1) ++ "}" + showsPrec d (Number f) = + showParen (d > 10) $ showString "Number {" . showsPrec 0 (f 1) . showString "}" data Expression op where Constant :: Number -> Expression op diff --git a/stack-8.10.yaml b/stack-8.10.yaml index e9a35cb12..8f51bf01a 100644 --- a/stack-8.10.yaml +++ b/stack-8.10.yaml @@ -11,6 +11,7 @@ extra-deps: - MIP-0.1.1.0 - OptDir-0.0.4 - bytestring-encoding-0.1.0.0 +- limp-0.3.2.3 # Override default flag values for local packages and extra-deps # flags: {} diff --git a/stack-8.6.yaml b/stack-8.6.yaml index 234942cfe..7529dbe42 100644 --- a/stack-8.6.yaml +++ b/stack-8.6.yaml @@ -15,6 +15,7 @@ extra-deps: - prettyprinter-ansi-terminal-1.1.3 - tasty-rerun-1.1.18 - text-1.2.4.1 +- limp-0.3.2.3 # Override default flag values for local packages and extra-deps # flags: {} diff --git a/stack-8.8.yaml b/stack-8.8.yaml index 06b536bcd..e3bc86666 100644 --- a/stack-8.8.yaml +++ b/stack-8.8.yaml @@ -12,6 +12,7 @@ extra-deps: - bytestring-encoding-0.1.0.0 - formatting-7.1.3 - prettyprinter-1.7.1 +- limp-0.3.2.3 # Override default flag values for local packages and extra-deps # flags: {} diff --git a/stack-9.0.yaml b/stack-9.0.yaml index 1349abd27..e39a0457a 100644 --- a/stack-9.0.yaml +++ b/stack-9.0.yaml @@ -7,7 +7,8 @@ resolver: nightly-2022-02-16 packages: - . -# extra-deps: [] +extra-deps: +- limp-0.3.2.3 # Override default flag values for local packages and extra-deps # flags: {} diff --git a/stack-9.2.yaml b/stack-9.2.yaml index 69365d734..d04c1cbd1 100644 --- a/stack-9.2.yaml +++ b/stack-9.2.yaml @@ -11,6 +11,7 @@ packages: extra-deps: - base-compat-0.12.1 - doctest-0.20.0 +- limp-0.3.2.3 # Override default flag values for local packages and extra-deps # flags: {}