[Haskell-cafe] Does this typeclass have a name?

Bardur Arantsson spam at scientician.net
Mon Apr 21 09:28:18 UTC 2014


On 2014-04-21 11:25, Ivan Lazar Miljenovic wrote:
> On 21 April 2014 18:08, Bardur Arantsson <spam at scientician.net> wrote:
>> On 2014-04-21 09:04, Ivan Lazar Miljenovic wrote:
>>> On 21 April 2014 15:09, Bardur Arantsson <spam at scientician.net> wrote:
>>>> Hi all,
>>>>
>>>> I was wondering if anyone out there knows if this type class has a name?
>>>>
>>>>   class Foo a e where
>>>>      foo :: e -> a -> a
>>>>      bar :: a
>>>>
>>>> (I also have a fundep a -> e, but that's not essential.)
>>>>
>>>> Essentially the usage is:
>>>>
>>>>    You have a sequence of "events" e_i and a starting value
>>>>    "bar" and can use the "foo" function to apply all events
>>>>    to that starting value
>>>>
>>>>       foo e_n $ foo e_{n-1} $ ... $ foo e_0 $ bar
>>>
>>> = foldr foo bar [e_n, e_{n-1} .. e_0] ?
>>>
>>
>> Yes, indeed, but I want the type class to constrain things since there
>> are other interacting constraints on the types "a" and "e" (plus there's
>> the fundep that I mentioned). The "single instance" part of type classes
>> is also very desirable.
> 
> Typeclasses only really make sense if you're defining polymorphic
> functions that deal with a variety of these kinds of types.
> 
> If that's the case, define your own typeclass (as it doesn't appear
> generic enough to be found in existing libraries) and define the
> instances you need.
> 

Of course, I'm already doing exactly that -- I really was just wondering
if there might be a name for the type class :).

Regards,




More information about the Haskell-Cafe mailing list