prototype 0.2 → 0.3
raw patch · 2 files changed
+9/−8 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Control.Prototype: setMethod :: Monad m => Object -> String -> Method m -> PTMonad m Member
+ Control.Prototype: setMethod :: Monad m => Object -> Member -> Method m -> PTMonad m ()
Files
- prototype.cabal +7/−4
- src/Control/Prototype.hs +2/−4
prototype.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.2 name: prototype-version: 0.2+version: 0.3 stability: experimental author: Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -27,13 +27,16 @@ > main :: IO () > main = fmap fst $ flip runPT initPTEnv $ do > dog <- clone object- > name <- makeMember "name"- > setName <- setMethod dog "setName" $ \this [ n ] -> do+ > name <- makeMember "name"+ > setName <- makeMember "setName"+ > sit <- makeMember "sit"+ > setMethod dog setName $ \this [ n ] -> do > setMember this name n > return [ ]- > sit <- setMethod dog "sit" $ \this _ -> do+ > setMethod dog sit $ \this _ -> do > n <- member this name > liftPT $ putStrLn $ fromPrimStr n ++ " sitting."+ > return [ ] > myDog <- clone dog > method myDog setName [ primStr "John" ] > method myDog sit [ ]
src/Control/Prototype.hs view
@@ -123,13 +123,11 @@ objBody@ObjectBody { objectMembers = mems } <- getObject obj putObject objBody { objectMembers = ( mn, val ) : mems } -setMethod :: Monad m => Object -> String -> Method m -> PTMonad m Member-setMethod obj name met = do+setMethod :: Monad m => Object -> Member -> Method m -> PTMonad m ()+setMethod obj mem met = do newId <- getNewId putObject $ Method newId met- mem <- makeMember name setMember obj mem newId- return mem printMemberName :: MonadIO m => Member -> m () printMemberName ( Member name ) = liftIO $ putStrLn name