Equivalence of function types with type variables

I need a function with the following attributes.

(C-> r) → (a-> b-> c) → a-> b-> d

my function:

funktionD = (.). (.)

but: t funktionD

funktionD :: (a → b) → (c → d → a) → c → d → b

ist this equal?

+3
source share
2 answers

It. Variables of type - written in lower case - these are just variables. You can rename them whatever you like if the template, which is the same variable, remains the same.

Also, essentially for the same reason, for a signature of the type you specified, there is only one possible function of that type (excluding functions that fail or go into endless loops). What to think about!

+4

, . a c ( ), b d ( ), .

+2

All Articles