[Haskell-cafe] Re: [Haskell] Arrows GUI Library Based on GTK+

Kevin Atkinson kevina at cs.utah.edu
Tue Mar 22 12:02:04 EST 2005


On Tue, 22 Mar 2005, Kevin Atkinson wrote:

> On Sun, 20 Mar 2005 ross at soi.city.ac.uk wrote:
> 
> > On Sat, Mar 19, 2005 at 12:17:46PM -0700, Kevin Atkinson wrote:
> > > On Sat, 19 Mar 2005 ross at soi.city.ac.uk wrote:
> > > > I would also have expected loopFG to have been defined using fixIO.
> > > 
> > > Could you be more specific.  Ie How?
> > 
> > For the type definitions
> > 
> > 	newtype FG' a b = FG' (Control -> a -> IO (Control, b))
> > 	newtype FG a b = FG (FGState -> IO (FG' a b, FGState))
> > 	newtype Container a b = Container (FG ([WidgetP], a) b)
> > 
> > the usual instances would be (give or take a ~):
> > 
> > 	instance ArrowLoop FG' where
> > 		loop (FG' f) = FG' $ \ c x -> do
> > 			(c', x', _) <- mfix $ \ ~(_, _, y) -> do
> > 				~(c', ~(x', y')) <- f c (x, y)
> > 				return (c', x', y')
> > 			return (c', x')
> 
> I must admit that I am baffled by what this is doing.  But I don't think 
> it has the semantics I want.  When I try substituting your 
> code in I get "Exception: <<loop>>".  I have reworked the way loops are 
> handled.  Please have a look at the new code at 
> http://www.haskell.org/arrows/.

Make that http://kevin.atkinson.dhs.org/fg/.  Sorry need to pay attention 
when I paste URL's :(

-- 
http://kevin.atkinson.dhs.org



More information about the Haskell-Cafe mailing list