packages feed

djinn-lib 0.0.1 → 0.0.1.1

raw patch · 3 files changed

+22/−9 lines, 3 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Djinn.HTypes: HClause :: HSymbol -> [HPat] -> HExpr -> HClause
+ Djinn.HTypes: HEApply :: HExpr -> HExpr -> HExpr
+ Djinn.HTypes: HECase :: HExpr -> [(HPat, HExpr)] -> HExpr
+ Djinn.HTypes: HECon :: HSymbol -> HExpr
+ Djinn.HTypes: HELam :: [HPat] -> HExpr -> HExpr
+ Djinn.HTypes: HETuple :: [HExpr] -> HExpr
+ Djinn.HTypes: HPApply :: HPat -> HPat -> HPat
+ Djinn.HTypes: HPAt :: HSymbol -> HPat -> HPat
+ Djinn.HTypes: HPCon :: HSymbol -> HPat
+ Djinn.HTypes: HPTuple :: [HPat] -> HPat
+ Djinn.HTypes: HPVar :: HSymbol -> HPat
+ Djinn.HTypes: hPrExpr :: HExpr -> String
+ Djinn.LJT: type MoreSolutions = Bool

Files

djinn-lib.cabal view
@@ -1,5 +1,5 @@ name:           djinn-lib-version:        0.0.1+version:        0.0.1.1 cabal-version:  >= 1.2 license:        BSD3 license-file:	LICENSE@@ -9,7 +9,7 @@ description:    Djinn uses an theorem prover for intuitionistic propositional logic                 to generate a Haskell expression when given a type.                 This is a library extracted from Djinn sources.-category:       source-tools+category:       Language homepage:       http://www.augustsson.net/Darcs/Djinn/ build-type:     Simple 
src/Djinn/HTypes.hs view
@@ -17,10 +17,11 @@   isHTUnion,   getHTVars,   substHT,-  HClause,-  HPat,-  HExpr (HEVar),+  HClause (..),+  HPat (..),+  HExpr (..),   hPrClause,+  hPrExpr,   termToHExpr,   termToHClause,   getBinderVars@@ -208,11 +209,19 @@ data HClause = HClause HSymbol [HPat] HExpr              deriving (Show, Eq) -data HPat = HPVar HSymbol | HPCon HSymbol | HPTuple [HPat] | HPAt HSymbol HPat | HPApply HPat HPat+data HPat = HPVar HSymbol+          | HPCon HSymbol+          | HPTuple [HPat]+          | HPAt HSymbol HPat+          | HPApply HPat HPat           deriving (Show, Eq) -data HExpr = HELam [HPat] HExpr | HEApply HExpr HExpr | HECon HSymbol | HEVar HSymbol-           | HETuple [HExpr] | HECase HExpr [(HPat, HExpr)]+data HExpr = HELam [HPat] HExpr+           | HEApply HExpr HExpr+           | HECon HSymbol+           | HEVar HSymbol+           | HETuple [HExpr]+           | HECase HExpr [(HPat, HExpr)]            deriving (Show, Eq)  hPrClause :: HClause -> String@@ -232,6 +241,9 @@ ppPat _ (HPTuple ps) = parens $ fsep $ punctuate comma (map (ppPat 0) ps) ppPat _ (HPAt s p) = text s <> text "@" <> ppPat 10 p ppPat p (HPApply a b) = pparens (p > 1) $ ppPat 1 a <+> ppPat 2 b++hPrExpr :: HExpr -> String+hPrExpr e = renderStyle style $ ppExpr 0 e  ppExpr :: Int -> HExpr -> Doc ppExpr p (HELam ps e) = pparens (p > 0) $ sep [ text "\\" <+> sep (map (ppPat 10) ps) <+> text "->",
src/Djinn/LJT.hs view
@@ -21,7 +21,8 @@   module Djinn.LJTFormula,   provable,   prove,-  Proof+  Proof,+  MoreSolutions ) where  import Control.Applicative (Applicative, Alternative, pure, (<*>), empty, (<|>))