On 25 June 2012 19:04, Arlen Cuss <[email protected]> wrote: > Magicloud, > > Try to reduce the particular problem you're having to the smallest possible > example that reproduces the issue. None of us can compile your code, either, > because we're missing many of the dependencies, and unfortunately the issue > is no easier (for me) to track down with the full source listing in this case.
Though line 22 reveals something: I don't know what Magicloud.Map.mapM is, though I'm guessing it's a lifted version of Data.Map.map. However, I would guess that it's a type problem. Try changing the type of start to be ` start :: (Ord k, Exception e) => JobArgs k a -> (a -> IO b) -> IO (M.Map k (JobInfo a e)) '; I would hazard a guess that you would get the same error, and thus the problem isn't with `type', it's that your mapping function isn't quite correct. > > Cheers, > > Arlen > > > On Monday, 25 June 2012 at 5:46 PM, Magicloud Magiclouds wrote: > >> Here is the code, I joined two modules in one paste. Both of them >> cannot pass compiling. >> >> http://hpaste.org/70418 >> >> On Mon, Jun 25, 2012 at 2:16 PM, Ivan Lazar Miljenovic >> <[email protected] (mailto:[email protected])> wrote: >> > On 25 June 2012 12:50, Magicloud Magiclouds >> > <[email protected] (mailto:[email protected])> >> > wrote: >> > > Hi, >> > > There was another mail, but the subject might be confusing. So I >> > > write this one. The code is here: http://hpaste.org/70414 >> > > If I understand correct, generally, I could use 'type' to do alias >> > > to save the ugly-long code. Like section 1. This works when I 't [(0, >> > > Just "x")]'. >> > > >> > > But, if I wrote section 2. Then 'start (M.fromList $ zip ord_args) >> > > worker' could not be compiled due to the second argument is type of >> > > 'M.Map Arg Arg', not 'JobArgs Arg Arg'. >> > >> > >> > >> > This shouldn't make a difference. As an example, this works: >> > >> > > import qualified Data.Map as M >> > > >> > > type Foo a b = M.Map a b >> > > >> > > fooInsert :: (Ord a) => a -> b -> Foo a b -> Foo a b >> > > fooInsert = M.insert >> > >> > >> > >> > Aliases are just for documentation; they shouldn't affect code working. >> > >> > >> > > >> > > What did I miss to make this work? >> > > -- >> > > 竹密岂妨流水过 >> > > 山高哪阻野云飞 >> > > >> > > And for G+, please use magiclouds#gmail.com (http://gmail.com). >> > > >> > > _______________________________________________ >> > > Haskell-Cafe mailing list >> > > [email protected] (mailto:[email protected]) >> > > http://www.haskell.org/mailman/listinfo/haskell-cafe >> > >> > >> > >> > >> > >> > -- >> > Ivan Lazar Miljenovic >> > [email protected] (mailto:[email protected]) >> > http://IvanMiljenovic.wordpress.com >> >> >> >> >> >> -- >> 竹密岂妨流水过 >> 山高哪阻野云飞 >> >> And for G+, please use magiclouds#gmail.com (http://gmail.com). >> >> _______________________________________________ >> Haskell-Cafe mailing list >> [email protected] (mailto:[email protected]) >> http://www.haskell.org/mailman/listinfo/haskell-cafe > > > -- Ivan Lazar Miljenovic [email protected] http://IvanMiljenovic.wordpress.com _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
