[Haskell-beginners] Explanation of elem data type

Ramnath R Iyer rri at silentyak.com
Wed Aug 4 01:26:17 UTC 2021


To add, t is typically some kind of container although it doesn’t have to
be. For instance, “t a” could be a “list (of) cat(s)”, except it doesn’t
*have* to be a list (can be anything that’s an instance of Foldable), and
it doesn’t *have* to be cats (could be a giraffe or a piano or any other
type).

In “list (of) cat(s)”, list can be thought of as a type-level function that
takes a type (cat) to construct a concrete type (list cat), hence the
notation.

This shows you commonly defined instances of Foldable (notice that the very
first one is a list, denoted by [ ]).

https://hackage.haskell.org/package/Cabal-3.4.0.0/docs/Distribution-Compat-Prelude-Internal.html#t:Foldable

—
RRI

On Tue, Aug 3, 2021 at 18:06 Francesco Ariis <fa-ml at ariis.it> wrote:

> Il 03 agosto 2021 alle 19:36 Galaxy Being ha scritto:
> > Thanks for the insights. So what then does the t a part mean? In the
> > simpler version t a is [a]. Is t some container? It's not meant to be a
> > function, is it?
>
> `t` is any unary type constructor. Maybe, Tree, etc. all take one parameter
> (Maybe a, Tree a, etc.); in a similar fashion [] takes one parameter
> ([] a). [a] is just syntactic sugar
>
>     λ> [7] :: [Int]
>     [7]
>     λ> [7] :: [] Int
>     [7]
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-- 
-- 
Ramnath R Iyer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20210803/a2d2e375/attachment.html>


More information about the Beginners mailing list