
One nice trick for this is to return an equality involving type level strings:
"Cannot satisfy FooBarBaz" ~ ()
In GHC 8, there will also be a type level function TypeError for this
purpose [1].
Erik
[1] https://downloads.haskell.org/~ghc/master/users-guide/glasgow_exts.html#cust...
On 10 March 2016 at 19:42, Mitchell Rosen
One empty typeclass I use often not only has no methods, but also has no members.
class Void
This is useful in type families that return Constraint, when you want to say this constraint is "unsatisfiable". I suppose returning something like "True ~ False" would also suffice, but isn't as pretty.
On Monday, March 7, 2016 at 10:10:48 PM UTC-8, Tomas Tauber wrote:
Hi everyone,
I have one question. What are current use cases of type classes with no methods?
I saw early uses in type-level programming (e.g. HList [1]). In the OO world, interfaces with no methods are called marker interfaces -- their use cases range from things that could be done with datatype generic programming in Haskell (e.g. serialization) to metadata annotations (e.g. RandomAccess [2]).
Regards,
Tomas Tauber
[1] http://okmij.org/ftp/Haskell/HList-ext.pdf [2] https://docs.oracle.com/javase/8/docs/api/java/util/RandomAccess.html _______________________________________________ Haskell-Cafe mailing list Haskel...@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe