"class ShapeInterface shape where
       area :: shape->Int"

now looks dubious....I want it to be something like

"class ShapeInterface shape where
       area :: Num numberType => shape->Int" ?

Rather, I think you probably want

class ShapeInterface shape where
    area :: Num numberType => shape -> numberType

-Brent