KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Here is a code taken from http://www.angelfire.com/tx4/cus/shapes/haskell98.html . It compiles and executes correctly in WinGHCi if I comment the names in the module header. But if the names are kept then it does not compile - it reports an error on the name MakeCircle. My question is: if I want to explicitly mention that I want to export MakeCircle, what code changes are required? module Circle -- (Circle, MakeCircle, getRadius, setRadius) where import Shape class Shape a => Circle a where getRadius :: a -> Int setRadius :: a -> Int -> a instance Shape CircleInstance where getX = x getY = y setX a newx = a {x = newx} setY a newy = a {y = newy} moveTo a newx newy = a {x = newx, y = newy} rMoveTo a deltax deltay = a {x = ((getX a) + deltax), y = ((getY a) + deltay)} draw a = putStrLn ("Drawing a Circle at:(" ++ (show (getX a)) ++ "," ++ (show (getY a)) ++ "), radius " ++ (show (getRadius a))) instance Circle CircleInstance where getRadius = radius setRadius a newradius = a {radius = newradius} data CircleInstance = MakeCircle {x, y, radius :: Int} deriving(Eq, Show)
Tags (comma-separated)
Save Edits
Cancel