-- the example 4.1 from Ljunglöf (2004, page 82) abstract ErasingAbs = { cat S; A; B; C; fun f : A -> S; g : A -> B -> C -> A; a : A; b : B; c : C; }