concrete MicroCnc of MicroAbs = { lincat A = {s : Str}; lin a = {s = "a"}; ab = {s = variants{"c";"b"}}; redup x = {s = x.s ++ x.s}; }