Я пытаюсь написать fmap для этого типа
data Triangle a = Triangle {t0 :: Point a, t1 :: Point a, t2 :: Point a}
где Point определяется как
data Point a = Point {px :: a, py :: a, pz :: a}
И мой экземпляр def
instance Functor Triangle where
fmap f (Triangle v0 v1 v2) = Triangle (f v0) (f v1) (f v2)
Я получаю следующее сообщение об ошибке и не могу понять, почему
C:\Scripts\Haskell\Geometry.hs:88:1: Occurs check: cannot construct the infinite type: a = Point a When generalising the type(s) for `fmap' In the instance declaration for `Functor Triangle'
Любые идеи?