packages feed

MonadLab 0.0 → 0.0.1

raw patch · 4 files changed

+41/−27 lines, 4 files

Files

MonadLab.cabal view
@@ -1,5 +1,5 @@ Name:          MonadLab-Version:       0.0+Version:       0.0.1 Synopsis:      Automatically generate layered monads Category:      Monads @@ -19,7 +19,7 @@                     examples/InterpC.hs, examples/InterpD.hs,                     examples/InterpMonadA.mlab, examples/InterpMonadB.mlab,                     examples/InterpMonadC.mlab, examples/InterpMonadD.mlab,-		    README+		    README, RELEASE-NOTES  Data-Files:         MLabCompileStub.hs, mlab.sh @@ -32,13 +32,12 @@   Build-Depends:   base   Build-Depends:   parsec   Build-Depends:   template-haskell-  Exposed-Modules: MonadLab.MonadLab, MonadLab.CommonTypes,-                   MonadLab.MLabParser, MonadLab.TypeParser,-                   MonadLab.Reduction, MonadLab.Writer,-                   MonadLab.Identity, MonadLab.Io,-                   MonadLab.IoList, MonadLab.ListIo,-                   MonadLab.List, MonadLab.State,-                   MonadLab.Env, MonadLab.Error,-                   MonadLab.Cont, MonadLab.Run,++  Exposed-Modules: MonadLab.MonadLab, MonadLab.CommonTypes, MonadLab.MLabParser++  Other-Modules:   MonadLab.TypeParser, MonadLab.Reduction, MonadLab.Writer,+                   MonadLab.Identity, MonadLab.Io, MonadLab.IoList,+                   MonadLab.ListIo, MonadLab.List, MonadLab.State,+                   MonadLab.Env, MonadLab.Error, MonadLab.Cont, MonadLab.Run,                    MonadLab.Declarations }
MonadLab/CommonTypes.hs view
@@ -92,12 +92,9 @@  -- | The monad type.  Each component contains abstract -- syntax of the Haskell code to implement the monad. -type Monad = ( MonadTypeCon		-- ^ Code for the data type -	     , ReturnExpQ		-- ^ Code for the return-	     , BindExpQ			-- ^ Code for the bind-	     , [LayerNPM]		-- ^ Code for the non-proper morphisms-	     , LiftExpQ			-- ^ Code for base monad lifting-	     )+-- Components are (code for the data type, code for the return, code for the+-- bind, code for the non-proper morphisms, code for the monad lifting)+type Monad = (MonadTypeCon, ReturnExpQ, BindExpQ, [LayerNPM], LiftExpQ)  -- | The name of monad type constructor identifier type MonadName		= String@@ -107,13 +104,25 @@  -- Data types for monad code components. -- All are type synonyms for ExpQ-type ReturnExpQ			= ExpQ	-- ^ Code for a monad return-type BindExpQ			= ExpQ	-- ^ Code for a monad bind-type LiftExpQ			= ExpQ  -- ^ Code for a monad lifting-type JoinExpQ			= ExpQ	-- ^ Code for a monad join-type RunExpQ			= ExpQ	-- ^ Code for a monad run (evaluation)-type NonProperMorphismExpQ	= ExpQ	-- ^ Code for a monad non-proper morphism +-- | Code for a monad return+type ReturnExpQ			= ExpQ++-- | Code for a monad bind+type BindExpQ			= ExpQ++-- | Code for a monad lifting+type LiftExpQ			= ExpQ++-- | Code for a monad join+type JoinExpQ			= ExpQ++-- | Code for a monad run (evaluation)+type RunExpQ			= ExpQ++-- | Code for a monad non-proper morphism+type NonProperMorphismExpQ	= ExpQ+ -- | Data type to hold a layer's non-proper morphisms type LayerNPM		= (Layer , [NonProperMorphismExpQ]) @@ -161,6 +170,6 @@  -- | Convenience function for expressing type @t -> t'@ in TH arrow :: TypeQ -> TypeQ -> TypeQ-arrow t1 t2 = appT (appT arrowT t1) t2--+arrow t1 t2 = appT (appT (conT $ mkName "(->)") t1) t2+              -- Note the weird use of prefix notation here; this is to+              -- work around a bug in TH's pretty printer
README view
@@ -21,5 +21,3 @@ * The parser will fail if a monad specification contains nested parentheses,   e.g. EnvT([(String,Int)]). You can work around this by declaring a type   synonym for the type of the environment/state/etc.--* ContT is currently broken due to a bug in Template Haskell's pretty-printer.
+ RELEASE-NOTES view
@@ -0,0 +1,8 @@+0.0.1+-----+* Added workaround to bug in TH's pretty-printer that causes ContT to output+  incorrect code++* Fixed a Haddock build failure (in CommonTypes.hs)++* Hid modules that shouldn't have been exposed