-- the example 4.1 from Ljunglöf (2004, page 82) abstract CopyMorphismAbs = { cat S; A; fun f : A -> S; g : A -> A -> A; ac : A; bd : A; }