[Haskell-beginners] Error compiling OpenGL tutorial part 2

Andrey Yankin yankin013 at gmail.com
Fri Aug 17 16:06:22 CEST 2012


Hi!

Try to group points and 7 with parentheses or put $ before points,
since points became a function at this step in tutorial.

But error message is a real mystery.
How could the actual type of mapM_ be unit?
Can somebody here explain this, please?
Is unit a monad?


2012/8/16 Darren Grant <therealkludgy at gmail.com>:
> I am currently following the OpenGL tutorial here:
>
> http://www.haskell.org/haskellwiki/OpenGLTutorial2
>
> But in the current incarnation of Display.hs
> (http://pastebin.com/g4NekDVh) I am getting the following error:
>
>
> $ cabal install
> Resolving dependencies...
> Configuring mygl-0.1...
> Preprocessing executables for mygl-0.1...
> Building mygl-0.1...
> [3 of 5] Compiling Display          ( Display.hs,
> dist\build\mygl\mygl-tmp\Display.o )
>
> Display.hs:13:9:
>     Couldn't match expected type `IO a0' with actual type `()'
>     In the return type of a call of `mapM_'
>     In a stmt of a 'do' expression:
>         mapM_
>           (\ (x, y, z)
>              -> preservingMatrix
>               $ do { color
>                    $ Color3 ((x + 1.0) / 2.0) ((y + 1.0) / 2.0) ((z +
> 1.0) / 2.0);
>                      translate $ Vector3 x y z;
>                    cube (0.1 :: GLfloat) })
>           points
>           7
>     In the expression:
>       do { clear [ColorBuffer];
>            scale 0.7 0.7 (0.7 :: GLfloat);
>            mapM_
>              (\ (x, y, z)
>                 -> preservingMatrix
>                  $ do { color
>                       $ Color3 ((x + 1.0) / 2.0) ((y + 1.0) / 2.0) ((z
> + 1.0) / 2.0);
>                       .... })
>              points
>              7;
>            flush }
> cabal.exe: Error: some packages failed to install:
> mygl-0.1 failed during the building phase. The exception was:
> ExitFailure 1
>
>
>
> Not being too familiar with the Haskell syntax I'm not sure how to go
> about decomposing the code to find the source of the problem.
>
> Is there any general advice that might help me with this sort of situation?
>
>
> Thank you!
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners



More information about the Beginners mailing list