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 +2/−2
- src/Djinn/HTypes.hs +18/−6
- src/Djinn/LJT.hs +2/−1
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, (<|>))