[Haskell-cafe] Use cases of empty type classes

Alex Rozenshteyn rpglover64 at gmail.com
Tue Mar 8 14:58:30 UTC 2016


You can use them to claim something about multiple type classes at once,
with some advantages over using ConstraintKinds for the same purpose:
https://www.reddit.com/r/haskell/comments/49em92/haskells_typeclasses_we_can_do_better/d0rwvi8?context=2

On Tue, Mar 8, 2016 at 6:36 AM Adam Bergmark <adam at bergmark.nl> wrote:

> 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 <Tomas Tauber
> <Tomas+Tauber+%3Ctomtau at connect.hku.hk%3E>> 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
>> Haskell-Cafe 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160308/5f723f7a/attachment.html>


More information about the Haskell-Cafe mailing list