T1900.hs:7:3: error: • Couldn't match type ‘Depend s0’ with ‘Depend s’ NB: ‘Depend’ is a type function, and may not be injective The type variable ‘s0’ is ambiguous Expected type: Depend s -> Depend s Actual type: Depend s0 -> Depend s0 • In the ambiguity check for ‘trans’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes When checking the class method: trans :: forall s. Bug s => Depend s -> Depend s In the class declaration for ‘Bug’