id . A Hask A -> A, A -> A; .
, / . idA - A, B f :: A -> B, f . idA , f, C g :: C -> A, ifA . g , g.
, A -> A , . (+1) :: Integer -> Integer Integer (*2) :: Integer -> Integer. , , (*2) . (+1), (+1) . (*2), (*2) , - , , .
. Haskell. ; , , , .
, - , , , ( , Hask), . A B ( , ). " ".
, idA - A -> A. , , , " " ( ).
Hask, , , " "; , . , :
f . id = f
id . f = f
, , - , , ( x , badId x x), , id!
(badId . id) x
badId (id x)
badId x
badId x x, , badId . id id ( id x = x). , badId .