Vivian McPhail wrote:
...
> I need the arg a to be evaluated before it gets
> passed to a1 and a2. This definition does the right thing
> when type 'a' is a function type, because it is not a
> value, but with something like 'm a -> (m a -> m a) -> m
> a' with Forkable (a -> b) the first arg gets e
> Vivian McPhail wrote:
> > > > class Forkable a where
> > > > fork :: String -> a -> a -> a
>
> > What I would like to be able to do is
> > differentiate between Forkable (m a ->
> > b) and Forkable ( -> b).
>
> Have you tried this combination of instances?
>
> instance Forkable (IO
Vivian McPhail wrote:
> > > class Forkable a where
> > > fork :: String -> a -> a -> a
> What I would like to be able to do is
> differentiate between Forkable (m a ->
> b) and Forkable ( -> b).
Have you tried this combination of instances?
instance Forkable (IO a) where ...
-- a
> Message: 6
> Date: Fri, 15 Sep 2006 18:36:35 +0300
> From: "Anatoly Zaretsky" <[EMAIL PROTECTED]>
> Subject: Re: [Haskell-cafe] Why is type 'b' forced to be type 'm a'
> and not possibly 'm a -> m a'
> To: "Vivian McPhail" <[EMAIL PROTECTED]>
> Cc: Haskell Cafe
> Message-ID:
> <[EMAI