packages feed

prototype-0.5.0: prototype.cabal

build-type:	Simple
cabal-version:	>= 1.2

name:		prototype
version:	0.5.0
stability:	experimental
author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>

license:	BSD3
license-file:	LICENSE

category:	Development
synopsis:	prototype-based programming on Haskell
description:	prototype-based programming on Haskell
		.
		You can download source codes by git.
		.
		git clone git:\/\/github.com\/YoshikuniJujo\/prototype.git prototype
		.
		Example code
		.
		> module Main where
		>
		> import Control.Prototype
		>
		> main :: IO ()
		> main = fmap fst $ flip runProt initProtEnv $ do
		>	( dog, setName, sit ) <- package "dog" $ do
		>		dog <- clone object
		>		name	<- makeMember "name"
		>		setName	<- makeMember "setName"
		>		sit	<- makeMember "sit"
		>		setMethod dog setName $ \this [ n ] -> do
		>			setMember this name n
		>			return [ ]
		>		setMethod dog sit $ \this _ -> do
		>			n <- member this name
		>			liftProt $ putStrLn $ fromPrimStr n ++ " sitting."
		>			return [ ]
		>		return ( dog, setName, sit )
		>	myDog <- clone dog
		>	method myDog setName [ primStr "John" ]
		>	method myDog sit [ ]
		>	return ()
		.
		Another sample
		.
		> module Main where
		>
		> import MyToolkit
		>
		> main :: IO ()
		> main = runToolKit $ do
		>	( textView, setText, setContentView ) <- importMyToolkit
		>	myTV <- clone textView
		>	method myTV setText [ primStr "Hello, world!" ]
		>	method myTV setContentView [ ]
		>	return ()

library
  hs-source-dirs:	src
  exposed-modules:	Control.Prototype
  build-depends:	base > 3 && < 5, monads-tf
  ghc-options:		-Wall