LINUX.ORG.RU

haskell


0

0

Здраствуйте.

Скачал примеры HOpenGL отсюда :
http://www.tfh-berlin.de/~panitz/hopengl/examples/klassen.html,

Много что собралось и заработало из примеров, но ...

Собираю ghc -c -O StateUtil.hs (нужно для Pong.hs)

StateUtil.hs:7:0:
    Duplicate instance declarations:
      StateUtil.hs:7:0: instance HasSetter IORef
      Imported from Graphics.Rendering.OpenGL.GL.StateVar: instance HasSetter IORef

StateUtil.hs:10:0:
    Duplicate instance declarations:
      StateUtil.hs:10:0: instance HasGetter IORef
      Imported from Graphics.Rendering.OpenGL.GL.StateVar: instance HasGetter IORef

Что не так :( ?

Спасибо.
★★★

Re: haskell

Если интересно :

module StateUtil where

import Graphics.Rendering.OpenGL
import Data.IORef
import Graphics.UI.GLUT

instance HasSetter IORef  where
  ($=) var val = writeIORef var val

instance HasGetter IORef  where
  get var = readIORef var

new = newIORef

fura13 ★★★ ()
Ответ на: Re: haskell от fura13

Re: haskell

Тебе ж ясно компилятор написал, что инстанс определен дважды. Убери объявления инстансов в своем коде. Если тебе нужно поменять определение операций в для какого-то типа, то я сам не знаю что делать, тоже было бы интересно узнать ответ на этот вопрос.

anonymous ()
Ответ на: Re: haskell от anonymous

Re: haskell

угум ... тока это не мой код, это код примеров для модуля HOpenGL

fura13 ★★★ ()
Ответ на: Re: haskell от anonymous

Re: haskell

>Если тебе нужно поменять определение операций в для какого-то типа, то я сам не знаю что делать, тоже было бы интересно узнать ответ на этот вопрос.

Наверное можно попоробывать определять instance в рызных модулях и подключать нужные.

Стандартный способ - newtype - создают новый тип, для которого не определены никакие instances;

А вообще перегрузка пока несколько сыровата. остается надеятся, что в будущем сделают более управляемой.

ival ★★ ()

Re: haskell

Да млина... Fudgets мне так и не удалось установить, ни в ghc ни в hugs :(

bugmaker ★★★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.