type s;
op f : s --> s
. f = ((\ x : s . x) as s --> s)