[Haskell-cafe] Is there a name for this?

Eric devnull1999 at yahoo.com
Sun Mar 8 16:11:48 UTC 2015


Given a class Foo:
> class Foo f where>     bar :: f -> Bool>     baz :: f -> Char -> Int
does the record type Foo'
>  data Foo' = Foo' {>      bar' :: Bool,>      baz' :: Char -> Int>      }>  >  instance Foo Foo' where>      bar = bar'>      baz = baz'
where the fields of the record Foo' are just implementations of the functions of Foo have any special name?
In some sense it's a canonical instance of Foo; we could trivially write a universal
> toFoo' :: Foo f => f -> Foo'
function.
I ran across this pattern and wondered whether it was useful enough to have received a name.  It vaguely resembles a typeclass dictionary or a vtable in an OOP language.
--Eric

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150308/59bb8c40/attachment.html>


More information about the Haskell-Cafe mailing list