title: export from module
body: <p>Here is a code taken from <a href="http://www.angelfire.com/tx4/cus/shapes/haskell98.html" rel="noreferrer">http://www.angelfire.com/tx4/cus/shapes/haskell98.html</a> .
  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?</p>
  
  <pre><code>module Circle -- (Circle, MakeCircle, getRadius, setRadius)
    where
    import Shape
  
    class Shape a =&gt; Circle a where
        getRadius :: a -&gt; Int
        setRadius :: a -&gt; Int -&gt; 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)
  </code></pre>