name: subhask version: 0.1.0.0 synopsis: Type safe interface for programming in subcategories of Hask homepage: http://github.com/mikeizbicki/subhask license: BSD3 license-file: LICENSE author: Mike Izbicki maintainer: mike@izbicki.me category: Control, Categories, Algebra build-type: Simple extra-source-files: README.md cabal-version: >=1.10 description: SubHask is a radical rewrite of the Haskell [Prelude](https://www.haskell.org/onlinereport/standard-prelude.html). The goal is to make numerical computing in Haskell *fun* and *fast*. The main idea is to use a type safe interface for programming in arbitrary subcategories of [Hask](https://wiki.haskell.org/Hask). For example, the category [Vect](http://ncatlab.org/nlab/show/Vect) of linear functions is a subcategory of Hask, and SubHask exploits this fact to give a nice interface for linear algebra. To achieve this goal, almost every class hierarchy is redefined to be more general. I recommend reading the file and the before looking at the documetation here. source-repository head type: git location: http://github.com/mikeizbicki/subhask -------------------------------------------------------------------------------- library exposed-modules: SubHask SubHask.Algebra SubHask.Algebra.Array SubHask.Algebra.Container SubHask.Algebra.Group SubHask.Algebra.Logic SubHask.Algebra.Metric SubHask.Algebra.Ord SubHask.Algebra.Parallel -- SubHask.Algebra.Trans.Kernel SubHask.Algebra.Vector SubHask.Category SubHask.Category.Finite SubHask.Category.Product SubHask.Category.Polynomial SubHask.Category.Slice SubHask.Category.Trans.Bijective -- SubHask.Category.Trans.Continuous SubHask.Category.Trans.Constrained SubHask.Category.Trans.Derivative -- SubHask.Category.Trans.Linear SubHask.Category.Trans.Monotonic SubHask.Compatibility.Base SubHask.Compatibility.BloomFilter SubHask.Compatibility.ByteString SubHask.Compatibility.Cassava SubHask.Compatibility.Containers SubHask.Compatibility.HyperLogLog SubHask.Monad SubHask.Mutable SubHask.SubType SubHask.TemplateHaskell.Base SubHask.TemplateHaskell.Deriving SubHask.TemplateHaskell.Mutable SubHask.TemplateHaskell.Test other-modules: SubHask.Internal.Prelude SubHask.TemplateHaskell.Common default-extensions: TypeFamilies, ConstraintKinds, DataKinds, GADTs, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, TypeOperators, RankNTypes, InstanceSigs, ScopedTypeVariables, UndecidableInstances, PolyKinds, StandaloneDeriving, GeneralizedNewtypeDeriving, TemplateHaskell, BangPatterns, FunctionalDependencies, TupleSections, MultiWayIf, AutoDeriveTypeable, RebindableSyntax -- OverloadedLists hs-source-dirs: src c-sources: cbits/Lebesgue.c cc-options: -- -O3 -ffast-math -msse3 ghc-options: -- -O2 -- -O -funbox-strict-fields build-depends: -- NOTE: -- We specify the *exact* versions of all non-base libraries to ensure that we get reproducible builds. -- This helps prevent performance regressions. -- The downside of exact version dependencies is that the user probably doesn't have these versions installed. -- This can result in significantly longer build times and build conflicts. -- But since subhask is designed as an alternative to base, this is an acceptable tradeoff. -- haskell language base >= 4.8 && <4.9, ghc-prim == 0.4.0.0, template-haskell == 2.10.0.0, -- special functionality parallel == 3.2.0.6, deepseq == 1.4.1.1, primitive == 0.6, monad-primitive == 0.1, QuickCheck == 2.8.1, -- math erf == 2.0.0.0, gamma == 0.9.0.2, vector == 0.10.12.3, hmatrix == 0.16.1.5, -- compatibility control flow mtl == 2.2.1, MonadRandom == 0.1.13, pipes == 4.1.3, -- compatibility data structures bytestring == 0.10.6.0, bloomfilter == 2.0.1.0, cassava == 0.4.2.3, containers == 0.5.6.2, hyperloglog == 0.3.1, -- required for hyperloglog compatibility semigroups == 0.16.2, bytes == 0.15, approximate == 0.2.1.1, lens == 4.9.1 default-language: Haskell2010 -------------------------------------------------------------------------------- Test-Suite TestSuite-Unoptimized type: exitcode-stdio-1.0 hs-source-dirs: test main-is: TestSuite.hs ghc-options: -O0 build-depends: subhask, test-framework-quickcheck2 >= 0.3.0, test-framework >= 0.8.0 -- FIXME: -- The test below takes a long time to compile. -- The slow builds are cosing travis tests to fail. -- -- Test-Suite TestSuite-Optimized -- type: exitcode-stdio-1.0 -- hs-source-dirs: test -- main-is: TestSuite.hs -- -- build-depends: -- subhask, -- test-framework-quickcheck2 >= 0.3.0, -- test-framework >= 0.8.0 -- -- ghc-options: -- -O2 -- -fllvm -------------------- Test-Suite Example0001 type: exitcode-stdio-1.0 hs-source-dirs: examples main-is: example0001-polynomials.lhs build-depends: subhask, base Test-Suite Example0002 type: exitcode-stdio-1.0 hs-source-dirs: examples main-is: example0002-monad-instances-for-set.lhs build-depends: subhask, base Test-Suite Example0003 type: exitcode-stdio-1.0 hs-source-dirs: examples main-is: example0003-linear-algebra.lhs build-depends: subhask, base -------------------------------------------------------------------------------- benchmark Vector type: exitcode-stdio-1.0 hs-source-dirs: bench main-is: Vector.hs build-depends: base, subhask, criterion == 1.1.0.0, MonadRandom ghc-options: -O2 -funbox-strict-fields -fexcess-precision -- -fliberate-case-threshold=100000 -- -fexpose-all-unfoldings -- -fmax-simplifier-iterations=10 -- -fmax-worker-args=100 -- -fsimplifier-phases=5 -- -fspec-constr-count=50 -fllvm -optlo-O3 -optlo-enable-fp-mad -optlo-enable-no-infs-fp-math -optlo-enable-no-nans-fp-math -optlo-enable-unsafe-fp-math -- -ddump-to-file -- -ddump-rule-firings -- -ddump-rule-rewrites -- -ddump-rules -- -ddump-cmm -- -ddump-simpl -- -ddump-simpl-stats -- -dppr-debug -- -dsuppress-module-prefixes -- -dsuppress-uniques -- -dsuppress-idinfo -- -dsuppress-coercions -- -dsuppress-type-applications