type B%%,C,Int
%%free type AT ::= A (s1 : Int; s2 : B)
%%op  + : AT * B -> C
%%op  f : B -> B
%%op  f : C -> C
type s < B