impure_method_impl.m:025: Warning: the type class `impure_method_impl.c'/1 and impure_method_impl.m:025: the type constructor in the argument vector of this impure_method_impl.m:025: instance declaration for it, namely impure_method_impl.m:025: `impure_method_impl.foo'/0, are all visible outside impure_method_impl.m:025: this module, which means that this instance can be impure_method_impl.m:025: relevant outside this module. Keeping it private to impure_method_impl.m:025: this module is therefore likely to be a mistake. impure_method_impl.m:026: Error: instance method predicate `m1'/2 is semipure. impure_method_impl.m:026: It must either be declared semipure, or promised impure_method_impl.m:026: pure. impure_method_impl.m:026: In call to semipure predicate impure_method_impl.m:026: `impure_method_impl.foo_m1'/2: impure_method_impl.m:026: purity error: call must be preceded by a `semipure' impure_method_impl.m:026: indicator. impure_method_impl.m:027: Error: instance method predicate `m2'/2 is impure. It impure_method_impl.m:027: must either be declared impure, or promised impure_method_impl.m:027: semipure. impure_method_impl.m:027: In call to impure predicate impure_method_impl.m:027: `impure_method_impl.foo_m2'/2: impure_method_impl.m:027: purity error: call must be preceded by an `impure' impure_method_impl.m:027: indicator.