packages feed

formlets 0.6 → 0.6.1

raw patch · 2 files changed

+24/−7 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Text/Formlets.hs view
@@ -114,14 +114,31 @@ checkM :: (Monad m) => Form xml m a -> (a -> m (Failing b)) -> Form xml m b checkM (Form frm) f = Form $ \env -> checker f (frm env)  where checker f frm = do currentState <- get-                          frm'         <- frm-                          return $ fmapFst3 (transform f. liftM (flip evalState currentState)) frm'-       transform f source = source >>= \x -> case x of -                              FR.Success x      -> liftM return (convert f x)-                              FR.NotAvailable x -> return . return $ FR.NotAvailable x-                              FR.Failure x      -> return . return $ FR.Failure x+                          (validator, xml, ct) <- frm+                          let validator' = transform f validator currentState+                          return (validator', xml, ct)+                          --return x++       transform :: Monad m => (a -> m (Failing b)) -> m (Validator a) -> FormState -> m (Validator b)+       transform f source st = x' (x f) source+        where x   :: Monad m => (a -> m (Failing b)) -> a -> m (Validator b)+              x f = fmap (liftM (return . FR.fromE)) f+              x'  :: Monad m => (a -> m (Validator b)) -> m (Validator a) -> m (Validator b)+              x' f a = do a' <- a+                          let (a'', st') = runState a' st+                          val <- combine f a''+                          return (changeState st' val)+              changeState :: st -> State st a -> State st a+              changeState st' mComp = do result <- mComp+                                         put st'+                                         return result        convert :: Monad m => (a -> m (Failing b)) -> (a -> m (FR.FormResult b))        convert f = fmap (liftM FR.fromE) f+       combine :: Monad m => (a -> m (Validator b)) -> FR.FormResult a -> m (Validator b)+       combine f x = case x of+         (FR.Success x)      -> f x+         (FR.NotAvailable x) -> return . return $ FR.NotAvailable x+         (FR.Failure x)      -> return . return $ FR.Failure x  instance (Functor m, Monad m) => Functor (Form xml m) where   fmap f (Form a) = Form $ \env -> (fmap . fmapFst3 . liftM . liftM . fmap) f (a env)
formlets.cabal view
@@ -1,5 +1,5 @@ Name:            formlets-Version:         0.6+Version:         0.6.1 Synopsis:        Formlets implemented in Haskell Description:     A modular way to build forms based on applicative functors, as                  described in: