Perhaps to think about this problem is to imagine how much we do not know about your arguments a
and a
.
For example, one cannot say the following:
someFunc :: a -> a -> a
someFunc x y = x == y
typecheck, , a
Eq
. , a
, , ( , ).
:
ident :: a -> a
ident x = ...
x
. , :
ident x = x
, .
, , , . , , . , , , :
someFunc1 :: a -> a -> a
someFunc1 x y = x
someFunc2 :: a -> a -> a
someFunc2 x y = y
.