[Haskell-cafe] Use cases of empty type classes

Adam Bergmark adam at bergmark.nl
Tue Mar 8 11:36:34 UTC 2016


I have two use cases for them

In fay-jquery there’s an empty Selectable class that has instances for all elements that can be passed to the jQuery function, there is no need for methods since we in the background just pass the object along, but we want to make sure we don’t pass something nonsensical.

In a rest API serving JSON you need ToJSON and FromJSON instances for each type, but since internal APIs may also use JSON it’s possible that you by accident pass a type that isn’t versioned and supposed to be included in the public API. There I can have an empty PublicApiType class with instances for all public types to give a type error if I pass something internal by mistake.

/Adam Bergmark

On Tue 08 Mar 2016 at 07:10 Tomas Tauber

<
mailto:Tomas Tauber <tomtau at connect.hku.hk>
> 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
mailto:Haskell-Cafe at haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160308/cb54389b/attachment.html>


More information about the Haskell-Cafe mailing list