packages feed

preprocessor-tools 1.0.1 → 2.0.0

raw patch · 3 files changed

+24/−20 lines, 3 filesdep ~base

Dependency ranges changed: base

Files

Language/Haskell/Preprocessor.hs view
@@ -36,6 +36,17 @@                    syntaxerror :: Maybe (E.Error -> IO ())                  } +instance Semigroup Extension where+  e1 <> e2 = Extension {+               keywords    = keywords e1 ++ keywords e2,+               transformer = transformer e1 <=< transformer e2,+               synspec     = synspec e1 `mappend` synspec e2,+               usage       = usage e1       <+ usage e2,+               syntaxerror = syntaxerror e1 <+ syntaxerror e2+             }+    where Just a  <+ _ = Just a+          Nothing <+ b = b+ instance Monoid Extension where   mempty          = Extension {                       keywords    = [],@@ -44,15 +55,6 @@                       usage       = Nothing,                       syntaxerror = Nothing                     }-  e1 `mappend` e2 = Extension {-                      keywords    = keywords e1 ++ keywords e2,-                      transformer = transformer e1 <=< transformer e2,-                      synspec     = synspec e1 `mappend` synspec e2,-                      usage       = usage e1       <+ usage e2,-                      syntaxerror = syntaxerror e1 <+ syntaxerror e2-                    }-    where Just a  <+ _ = Just a-          Nothing <+ b = b  base :: Extension base  = Extension {
Language/Haskell/Preprocessor/SynSpec.hs view
@@ -13,18 +13,20 @@                }   deriving (Eq, Show) +instance Semigroup SynSpec where+  s1 <> s2 = SynSpec {+               unboxed   = unboxed s1   || unboxed s2,+               pragmas   = pragmas s1   || pragmas s2,+               levelnest = levelnest s1 || levelnest s2,+               blocks    = blocks s1    ++ blocks s2+             }+ instance Monoid SynSpec where   mempty          = SynSpec {                       unboxed   = False,                       pragmas   = False,                       levelnest = False,                       blocks    = []-                    }-  s1 `mappend` s2 = SynSpec {-                      unboxed   = unboxed s1   || unboxed s2,-                      pragmas   = pragmas s1   || pragmas s2,-                      levelnest = levelnest s1 || levelnest s2,-                      blocks    = blocks s1    ++ blocks s2                     }  data Keyword = I { getKey :: String }
preprocessor-tools.cabal view
@@ -1,16 +1,16 @@ Name:           preprocessor-tools-Version:        1.0.1+Version:        2.0.0 Cabal-Version:  >= 1.2.3 License:        BSD3 License-File:   LICENSE Stability:      experimental-Author:         Jesse A. Tov <tov@eecs.harvard.edu>-Maintainer:     tov@eecs.harvard.edu-Homepage:       http://www.eecs.harvard.edu/~tov/pubs/haskell-session-types/+Author:         Jesse A. Tov <jesse@eecs.northwestern.edu>+Maintainer:     jesse@eecs.northwestern.edu+Homepage:       https://github.com/tov/preprocessor-tools-hs Category:       Source-tools, Language, Code Generation Synopsis:       A framework for extending Haskell's syntax via quick-and-dirty preprocessors Build-type:     Simple-Tested-with:    GHC == 7.4.1+Tested-with:    GHC == 8.4.2 Description:         This library provides a quick-and-dirty (but often effective)         method for extending Haskell's syntax using a custom