Hi,

superclass.hs

myX = 1 :: Int

sigmund  :: Int -> Int 
sigmund x = myX


prelude> :l superclass.hs
[1 of 1] Compiling Main 
Ok, one module loaded.

==================================================================================

superclass.hs

myX = 1 :: Int

sigmund  :: Num -> Num 
sigmund x = myX

prelude> :l superclass.hs
typed_checked.hs:3:13: error:
    • Expecting one more argument to ‘Num’
      Expected a type, but ‘Num’ has kind ‘* -> Constraint’
    • In the type signature: sigmund :: Num -> Num
  |
3 | sigmund  :: Num -> Num    |             ^^^

typed_checked.hs:3:20: error:
    • Expecting one more argument to ‘Num’
      Expected a type, but ‘Num’ has kind ‘* -> Constraint’
    • In the type signature: sigmund :: Num -> Num


===================================================================================

I would think since Num is a superclass of Int defining the type in the superclass would be OK, also in the error message it refers to (see black) what does that refer to?

thanks!