packages feed

kure 0.2.1 → 0.2.2

raw patch · 3 files changed

+23/−9 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Language.KURE.Combinators: class Failable f
+ Language.KURE.Combinators: failure :: (Failable f) => String -> f a
+ Language.KURE.Combinators: instance (Monad m, Monoid dec) => Failable (RewriteM m dec)
+ Language.KURE.Combinators: instance (Monad m, Monoid dec) => Failable (Translate m dec a)
- Language.KURE.Combinators: (?) :: (Monoid dec, Monad m) => Bool -> Translate m dec a b -> Translate m dec a b
+ Language.KURE.Combinators: (?) :: (Failable f) => Bool -> f a -> f a

Files

Language/KURE/Combinators.hs view
@@ -13,18 +13,17 @@ -- and the 'Translate' functions operate with 'Rewrite'.   module Language.KURE.Combinators -	(  -- * 'Translate' combinators+	(  -- * The 'Translate' combinators 	  (<+) 	, (>->) 	, failT-	, (?) 	, readerT 	, getDecsT 	, mapDecsT 	, pureT 	, constT 	, concatT-	, -- * 'Rewrite' combinators+	, -- * The 'Rewrite' combinators 	  (.+) 	, (!->) 	, tryR@@ -33,6 +32,9 @@ 	, acceptR 	, idR 	, failR+	, -- * Generic failure, over both 'Monad's and 'Translate's.+	  (?)+	, Failable(..) 	) where  	 import Language.KURE.RewriteMonad	@@ -60,10 +62,6 @@ failT :: (Monad m, Monoid dec) => String -> Translate m dec a b failT msg = translate $ \ _ -> failM msg --- | Guarded translate.-(?) ::  (Monoid dec, Monad m) => Bool -> Translate m dec a b -> Translate m dec a b-(?) False _rr = failT "(False ?)"-(?) True   rr = rr  -- | look at the argument for the translation before choosing which translation to perform.  readerT :: (Monoid dec, Monad m) => (a -> Translate m dec a b) -> Translate m dec a b@@ -130,6 +128,22 @@ -- | failing rewrite. failR :: (Monad m, Monoid dec) => String -> Rewrite m dec a failR = failT++--------------------------------------------------------------------------------+-- | Failable structure.+class Failable f where+  failure :: String -> f a++instance (Monad m, Monoid dec) => Failable (Translate m dec a) where +  failure msg = failT msg++instance (Monad m, Monoid dec) => Failable (RewriteM m dec) where +  failure msg = fail msg+ +-- | Guarded translate or monadic action.+(?) ::  (Failable f) => Bool -> f a -> f a+(?) False _rr = failure "(False ?)"+(?) True   rr = rr   --------------------------------------------------------------------------------
Language/KURE/RewriteMonad.hs view
@@ -142,6 +142,6 @@ getDecsM :: (Monad m, Monoid dec) => RewriteM m dec dec getDecsM = RewriteM $ \ dec -> return $ RewriteReturnM dec mempty mempty --- | 'mapDecs" changes the local environment, inside a local monadic invocation.+-- | 'mapDecs' changes the local environment, inside a local monadic invocation. mapDecsM :: (Monad m, Monoid dec) => (dec -> dec) -> RewriteM m dec a -> RewriteM m dec a mapDecsM fn (RewriteM m) = RewriteM $ \ dec -> m (fn dec)
kure.cabal view
@@ -1,5 +1,5 @@ Name:                kure-Version:             0.2.1+Version:             0.2.2 Synopsis:            Combinators for Strategic Programming Description:	     KURE is a DSL for building rewriting DSLs. 	 	     KURE shares combinator names and concepts with Stratego, but unlike Stratego, KURE is strongly typed.