Îõ³h% Ä ¯ Safe-Inferred/0ËÛîË unsatisfiable type-class.äThis a common idiom, to have a type-class with a non-exported member. This class cannot be ever instantiated, and we can use it to "forbid" some instances from existence, by defining an instance with unsatisfiable constraint.The  acts as better $, using this type-class constraint.ßThe behaviour of this class would be rather better defined than instantiating the polymorphic  to kind •, because it is clear when to report the custom error: instead of an unsolved constraint error, when the constraint solver fails to solve a wanted  msg.)The custom error reporting is done using  type-checker plugin.See discussion in  1https://gitlab.haskell.org/ghc/ghc/-/issues/18310 GHC#18310.;There are some examples of using this class and plugin at Óhttps://github.com/phadej/unsatisfiable/tree/master/unsatisfiable-examples/examples unsatisfiableSee .If you need some other TYPE, you can use case trick by instantiating  to    and using  EmptyCase. case  @msg @Void of {} None$% † unsatisfiableTo use this plugin add +{-# OPTIONS_GHC -fplugin=Unsatisfiable #-} to your source file.This plugin does two things:Firstly, when there is wanted Å constraint, we pretty-pring its message. Unfortunately the actual #No instance for (Unsatisfiable msg)< error is also printed, as we don't solve it, except when -fdefer-type-errors is enabled. In that case  0 will throw an error with the rendered message.Secondly, when Ì constraint is given, all other constraints are solved automatically using  unsatisfiable! as the evidence. This is useful Þclass C a => D a instance Unsatisfiable Msg => D Int -- Note absence of C Int in the context &The motivation here is that if we use  » to ban an instance with a nice error message, we don't want to get extra error messages arising from failure to solve the superclass constraints, which we get if we are obliged to use -instance (Unsatisfiable Msg, C Int) => D Int èWhen GHC looks for valid type hole fits this plugin might print some errors. You may disable them with -fno-show-valid-hole-fits ghc option.None ¥ unsatisfiable-0-inplaceUnsatisfiable.ClassUnsatisfiable.Plugin GHC.TypeLits TypeError Data.Kind Constraint Unsatisfiableplugin Data.VoidVoidUnsatifiable.Class unsatisfiableUnsatisifable.ClassbaseGHC.Err undefined