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

Что не так :( ?

Спасибо.
★★★
Если интересно :

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 ★★★
() автор топика
Ответ на: комментарий от fura13
Тебе ж ясно компилятор написал, что инстанс определен дважды. Убери объявления инстансов в своем коде. Если тебе нужно поменять определение операций в для какого-то типа, то я сам не знаю что делать, тоже было бы интересно узнать ответ на этот вопрос.
anonymous
()
Ответ на: комментарий от anonymous
угум ... тока это не мой код, это код примеров для модуля HOpenGL
fura13 ★★★
() автор топика
Ответ на: комментарий от anonymous
>Если тебе нужно поменять определение операций в для какого-то типа, то я сам не знаю что делать, тоже было бы интересно узнать ответ на этот вопрос.

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

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

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

ival ★★
()
Да млина... Fudgets мне так и не удалось установить, ни в ghc ни в hugs :(
bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.