Update of /cvsroot/hoc/hoc/HOC/HOC
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5525/HOC/HOC
Modified Files:
Arguments.hs TH.hs
Added Files:
NameCaseChange.hs
Log Message:
Improve Enum support (mostly untested)
Index: TH.hs
===================================================================
RCS file: /cvsroot/hoc/hoc/HOC/HOC/TH.hs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- TH.hs 6 Dec 2004 03:46:51 -0000 1.1
+++ TH.hs 29 Jul 2005 03:39:44 -0000 1.2
@@ -3,6 +3,7 @@
mkNameG_v,
mkNameG_tc,
mkNameG_d,
+ whereQ
) where
import Language.Haskell.TH
@@ -11,3 +12,8 @@
instance Functor Q where
fmap f q = q >>= return . f
+whereQ :: ([Q Dec] -> Q a) -> Q [Dec] -> Q a
+header `whereQ` declsQ = do
+ decls <- declsQ
+ header (map return decls)
+
Index: Arguments.hs
===================================================================
RCS file: /cvsroot/hoc/hoc/HOC/HOC/Arguments.hs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Arguments.hs 26 Jul 2005 05:25:42 -0000 1.3
+++ Arguments.hs 29 Jul 2005 03:39:44 -0000 1.4
@@ -49,11 +49,6 @@
|]
return [argInst]
-whereQ :: ([Q Dec] -> Q a) -> Q [Dec] -> Q a
-header `whereQ` declsQ = do
- decls <- declsQ
- header (map return decls)
-
-- to avoid overlapping instance ObjCIMPType (IO ()) below...
data EvilDummyForUnit
instance Storable EvilDummyForUnit where
--- NEW FILE: NameCaseChange.hs ---
module HOC.NameCaseChange where
import Data.Char ( toUpper, toLower, isUpper )
nameToUppercase ('_':ame) = nameToUppercase ame
nameToUppercase ('n':'s':n:ame) | isUpper n = 'N':'S':n:ame
nameToUppercase (n:ame) = toUpper n : ame
nameToLowercase ('N':'S':n:ame) | isUpper n = 'n':'s':n:ame
nameToLowercase (n:ame) = toLower n : ame
|