
This is probably a haskell-beginners sort of question, but I usually get about 4x as many responses from cafe, about 10x as fast. I have code like so: code: -------- data Xy a = Xy a a class Coord2 a where coords2 :: Fractional b => a b -> Xy b data CircAppr a b = CircAppr a b b -- number of points, rotation angle, radius deriving (Show) instance Integral a => Coord2 (CircAppr a) where coords2 (CircAppr divns ang rad) = let dAng = 2 * pi / (fromIntegral divns) in let angles = map (* dAng) [0..divns] in undefined -- To be coded... -------- In the instance definition divns is an integral trying to divide a fractional. I hoped wrapping it in fromIntegral would coerce, but apparently not: quote: -------- Could not deduce (Fractional a) arising from a use of `/' from the context (Integral a) bound by the instance declaration at /scratch/cmhoward/pulse-spin/pulse-spin.hs:34:10-42 or from (Fractional b) bound by the type signature for coords2 :: Fractional b => CircAppr a b -> Xy b at /scratch/cmhoward/pulse-spin/pulse-spin.hs:(36,3)-(39,15) Possible fix: add (Fractional a) to the context of the type signature for coords2 :: Fractional b => CircAppr a b -> Xy b or the instance declaration In the expression: 2 * pi / (fromIntegral divns) In an equation for `dAng': dAng = 2 * pi / (fromIntegral divns) In the expression: let dAng = 2 * pi / (fromIntegral divns) in let angles = map (* dAng) [0 .. divns] in undefined -------- So, I'm wondering how I can do what I'm trying to do here, while still keeping my types as generic as possible. -- frigidcode.com