syntactic 3.3 → 3.4
raw patch · 4 files changed
+12/−8 lines, 4 files
Files
- src/Language/Syntactic/Functional/Tuple/TH.hs +3/−3
- src/Language/Syntactic/Sugar/TupleTyped.hs +1/−1
- src/Language/Syntactic/TH.hs +7/−3
- syntactic.cabal +1/−1
src/Language/Syntactic/Functional/Tuple/TH.hs view
@@ -128,7 +128,7 @@ , AppT (ConT ''Full) (AppT (ConT (mkName ("Sel" ++ show s))) (VarT (mkName "tup"))) ] )- , classPred (mkName ("Select" ++ show s)) [VarT (mkName "tup")]+ , classPred (mkName ("Select" ++ show s)) ConT [VarT (mkName "tup")] ] (NormalC (mkName (selName ++ show s)) []) | s <- [1..n]@@ -185,9 +185,9 @@ where deriveSyntacticForTuple w = InstanceD ( concat- [ map (classPred ''Syntactic . return) varsT+ [ map (classPred ''Syntactic ConT . return) varsT , concatMap internalPred $ map (AppT (ConT ''Internal)) varsT- , [classPred ''(:<:) [ConT (mkName "Tuple"), VarT (mkName "sym")]]+ , [classPred ''(:<:) ConT [ConT (mkName "Tuple"), VarT (mkName "sym")]] , [eqPred domainA (mkDomain (VarT (mkName "sym")))] , [eqPred domainA (AppT (ConT ''Domain) b) | b <- tail varsT
src/Language/Syntactic/Sugar/TupleTyped.hs view
@@ -21,7 +21,7 @@ deriveSyntacticForTuples- (return . classPred ''Typeable . return)+ (return . classPred ''Typeable ConT . return) (AppT (ConT ''Typed)) (\s -> AppE (ConE 'Typed) (AppE (VarE 'inj) s)) #if __GLASGOW_HASKELL__ < 708
src/Language/Syntactic/TH.hs view
@@ -187,11 +187,15 @@ #endif -- | Portable method for constructing a 'Pred' of the form @SomeClass t1 t2 ...@-classPred :: Name -> [Type] -> Pred+classPred+ :: Name -- ^ Class name+ -> (Name -> Type) -- ^ How to make a type for the class (typically 'ConT' or VarT)+ -> [Type] -- ^ Class arguments+ -> Pred #if MIN_VERSION_template_haskell(2,10,0)-classPred cl = foldl AppT (ConT cl)+classPred cl con = foldl AppT (con cl) #else-classPred = ClassP+classPred cl con = ClassP cl #endif -- | Portable method for constructing a type synonym instances
syntactic.cabal view
@@ -1,5 +1,5 @@ Name: syntactic-Version: 3.3+Version: 3.4 Synopsis: Generic representation and manipulation of abstract syntax Description: The library provides a generic representation of type-indexed abstract syntax trees (or indexed data types in general). It also permits the definition of open syntax