she 0.4 → 0.5
raw patch · 3 files changed
+49/−2 lines, 3 files
Files
- she.cabal +2/−1
- src/Imports.lhs +3/−1
- src/ShesHers.lhs +44/−0
she.cabal view
@@ -1,5 +1,5 @@ name: she-version: 0.4+version: 0.5 homepage: http://personal.cis.strath.ac.uk/~conor/pub/she synopsis: A Haskell preprocessor adding miscellaneous features description:@@ -42,6 +42,7 @@ HaLay Parsley Patsy+ ShesHers Superclass TypesToKinds
src/Imports.lhs view
@@ -9,6 +9,7 @@ > import HaLay > import Parsley+> import ShesHers > tryReadFile :: FilePath -> IO String > tryReadFile s = catch (readFile s) $ \ e ->@@ -24,7 +25,8 @@ > getHers p = ready f <$> tryReadFile f where f = joinPath p <.> "hers" > storySoFar :: [[Tok]] -> IO [[Tok]]-> storySoFar hs = oneOfEach [] <$> foldMap getHers (hs >>= grokImports)+> storySoFar hs = (shesHers ++) <$>+> (oneOfEach [] <$> foldMap getHers (hs >>= grokImports)) > pModule :: P Tok String > pModule = (teq (KW "module") *> spc *> uid) <* pRest
+ src/ShesHers.lhs view
@@ -0,0 +1,44 @@+> module ShesHers where++> import HaLay++> bigString :: String+> bigString = unlines+> [ "module ShesHers where"+> , " class Functor f where"+> , " fmap"+> , ""+> , " class Applicative f where"+> , " pure, (<*>)"+> , " instance Functor f where"+> , " fmap = (<*>) . pure"+> , ""+> , " class Monad f where"+> , " return, (>>=), (>>), fail where"+> , " instance Applicative f where"+> , " pure = return"+> , " ff <*> sf = ff >>= \\ f -> sf >>= \\ s -> return (f s)"+> , ""+> , " class Foldable f where"+> , " fold, foldMap, foldr, foldl, foldr1, foldl1"+> , ""+> , " class Traversable f where"+> , " traverse, sequenceA, mapM, sequence"+> , " instance Foldable f where"+> , " foldMap = foldMapDefault"+> , " instance Functor f where"+> , " fmap = fmapDefault"+> , ""+> , " class Alternative where"+> , " empty, (<|>)"+> , ""+> , " class MonadPlus where"+> , " mzero, mplus"+> , " instance Alternative where"+> , " empty = mzero"+> , " (<|>) = mplus"+> , ""+> ]++> shesHers :: [[Tok]]+> shesHers = ready "ShesHers.hers" bigString