free-theorems 0.3.1 → 0.3.1.1
raw patch · 3 files changed
+66/−36 lines, 3 filesdep +sybdep ~base
Dependencies added: syb
Dependency ranges changed: base
Files
- free-theorems.cabal +54/−33
- src/Language/Haskell/FreeTheorems/Intermediate.hs +7/−2
- src/Language/Haskell/FreeTheorems/Unfold.hs +5/−1
free-theorems.cabal view
@@ -1,5 +1,5 @@ name: free-theorems-version: 0.3.1+version: 0.3.1.1 license: PublicDomain license-file: LICENSE author: Sascha Boehme@@ -17,40 +17,10 @@ In the last two sublanguages, also inequational free theorems may be derived in addition to classical equational results. category: Language-tested-with: GHC==6.8.2+tested-with: GHC==6.8.2, GHC==6.10.1 cabal-version: >= 1.2.3 build-type: Simple-build-depends:- base >= 1.0- , mtl >= 1.0- , haskell-src >= 1.0- , haskell-src-exts >= 0.3.9- , pretty >= 1.0.0.0- , containers >= 0.1.0.1-exposed-modules:- Language.Haskell.FreeTheorems- Language.Haskell.FreeTheorems.Syntax- Language.Haskell.FreeTheorems.Parser.Haskell98- Language.Haskell.FreeTheorems.Parser.Hsx- Language.Haskell.FreeTheorems.Theorems- Language.Haskell.FreeTheorems.BasicSyntax- Language.Haskell.FreeTheorems.ValidSyntax- Language.Haskell.FreeTheorems.NameStores-other-modules:- Language.Haskell.FreeTheorems.Frontend- Language.Haskell.FreeTheorems.Frontend.Error- Language.Haskell.FreeTheorems.Frontend.TypeExpressions- Language.Haskell.FreeTheorems.Frontend.CheckLocal- Language.Haskell.FreeTheorems.Frontend.CheckGlobal- Language.Haskell.FreeTheorems.LanguageSubsets- Language.Haskell.FreeTheorems.Intermediate- Language.Haskell.FreeTheorems.Unfold- Language.Haskell.FreeTheorems.PrettyBase- Language.Haskell.FreeTheorems.PrettyTypes- Language.Haskell.FreeTheorems.PrettyTheorems- Language.Haskell.FreeTheorems.Theorems.Simplify-hs-source-dirs: src-extensions: Generics, DeriveDataTypeable, Rank2Types, PatternSignatures+ extra-source-files: src/Arbitraries.hs src/FrontendCheckGlobalTests.hs@@ -63,3 +33,54 @@ src/Tests.hs README runtests++library+ build-depends:+ mtl >= 1.0+ , haskell-src >= 1.0+ , haskell-src-exts >= 0.3.9+ , pretty >= 1.0.0.0+ , containers >= 0.1.0.1+ if impl(ghc >= 6.10)+ build-depends:+ base >= 4+ , syb >= 0.1.0.0+ else+ build-depends:+ base >= 1 && < 4++ exposed-modules:+ Language.Haskell.FreeTheorems+ Language.Haskell.FreeTheorems.Syntax+ Language.Haskell.FreeTheorems.Parser.Haskell98+ Language.Haskell.FreeTheorems.Parser.Hsx+ Language.Haskell.FreeTheorems.Theorems+ Language.Haskell.FreeTheorems.BasicSyntax+ Language.Haskell.FreeTheorems.ValidSyntax+ Language.Haskell.FreeTheorems.NameStores++ other-modules:+ Language.Haskell.FreeTheorems.Frontend+ Language.Haskell.FreeTheorems.Frontend.Error+ Language.Haskell.FreeTheorems.Frontend.TypeExpressions+ Language.Haskell.FreeTheorems.Frontend.CheckLocal+ Language.Haskell.FreeTheorems.Frontend.CheckGlobal+ Language.Haskell.FreeTheorems.LanguageSubsets+ Language.Haskell.FreeTheorems.Intermediate+ Language.Haskell.FreeTheorems.Unfold+ Language.Haskell.FreeTheorems.PrettyBase+ Language.Haskell.FreeTheorems.PrettyTypes+ Language.Haskell.FreeTheorems.PrettyTheorems+ Language.Haskell.FreeTheorems.Theorems.Simplify++ hs-source-dirs: src++ extensions:+ Generics,+ DeriveDataTypeable,+ Rank2Types++ if impl(ghc >= 6.10)+ extensions: ScopedTypeVariables+ else + extensions: PatternSignatures
src/Language/Haskell/FreeTheorems/Intermediate.hs view
@@ -32,7 +32,12 @@ ( relationNameStore, typeExpressionNameStore, functionNameStore1, functionNameStore2 ) -+-- helper to stay compatible with new Map.lookup for base >= 4.0.0.0+maybeToMonad :: Monad m => Maybe a -> m a+maybeToMonad mb = + case mb of+ Just x -> return x+ Nothing -> fail "Data.Map.lookup: Key not found" ------- Intermediate data structure ------------------------------------------- @@ -127,7 +132,7 @@ -- in the initial type expression, all occurring type variables are bound -- by type abstraction which are resolved by updating the environment, see -- below) and create a relation consisting solely of the relation variable- TypeVar v -> Map.lookup v =<< ask+ TypeVar v -> maybeToMonad.Map.lookup v =<< ask -- either create a basic relation or a lift relation, depending on the -- subtypes
src/Language/Haskell/FreeTheorems/Unfold.hs view
@@ -1,5 +1,9 @@+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 610+{-# LANGUAGE ScopedTypeVariables #-}+#else {-# LANGUAGE PatternSignatures #-}-+#endif module Language.Haskell.FreeTheorems.Unfold ( asTheorem