Elm has parametric polymorphism so, functions can work over types that have
one or more type variables.
The type variables are unrestricted BUT, there are three restricted type
variables: number, comparable, appendable.
For example, `number` is restricted to Float and Int.

Maybe it is easier to understand the type of main as one of these
restricted type variables that is restricted to `Html a` and `Program a`.



On Sun, Jul 24, 2016 at 8:58 AM, Duane Johnson <duane.john...@gmail.com>
wrote:

> I was working through Elm in Action (first 2 chapters) today and I
> realized I don't understand how `main` can be of type `Html.Html`:
>
> main =
>>   div [ class "content" ] [ text "Photo Groove" ]
>
>
> In the documentation for `Platform
> <http://package.elm-lang.org/packages/elm-lang/core/4.0.3/Platform#Program>`
> it says:
>
> Every Elm project will define main to be some sort of `Program`.
>
>
> Is `Html.Html` a kind of `Program`? Is there some kind of magic going on
> here? Thanks!
>
> Duane
>
> --
> You received this message because you are subscribed to the Google Groups
> "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elm-discuss+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
There is NO FATE, we are the creators.
blog: http://damoc.ro/

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to