[Haskell-cafe] Use cases of empty type classes

Erik Hesselink hesselink at gmail.com
Thu Mar 10 19:08:54 UTC 2016


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#custom-errors

On 10 March 2016 at 19:42, Mitchell Rosen <mitchellwrosen at gmail.com> wrote:
> 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... at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list