[web-devel] Yesod question: renaming widget functions

Max Cantor mxcantor at gmail.com
Mon Oct 25 16:35:42 CEST 2010


Agreed.

Max

On Oct 25, 2010, at 1:50 PM, Matt Brown wrote:

> I prefer the new names as well, and don't think code breakage would be
> a problem.  I say it's worth it.
> 
> -matt
> 
> On Sun, Oct 24, 2010 at 12:58 AM, Michael Snoyman <michael at snoyman.com> wrote:
>> Hey all,
>> 
>> I have a general rule of thumb: if I get confused about how I named
>> things, I probably named them badly. For example, addStyle takes a
>> Cassius value as an argument, while addStylesheet takes a route to a
>> CSS file. On the other hand, addScript takes a route to a Javascript
>> file, and addJavascript takes a Julius value. There's also addBody,
>> which takes a Hamlet.
>> 
>> And there's no addWidget, which is fine (it would just be id), except
>> that it looks wrong and can lead to confusing type errors with the new
>> polymorphic Hamlet. For example:
>> 
>>    defaultLayout $ do
>>        setTitle "Widget test"
>>        [$hamlet|This is a widget|]
>> 
>> works fine, but:
>> 
>>    defaultLayout $ do
>>        [$hamlet|This is a widget|]
>>        setTitle "Widget test"
>> 
>> confuses the compiler. I'm considering some renamings for Yesod 0.6
>> which will cause breakage, so I wanted your opinions if the changes
>> are worth it, or if you have any better ideas. Here's what I'm
>> thinking:
>> 
>> addCassius :: Cassius -> Widget
>> addJulius :: Julius -> Widget
>> addHamlet :: Hamlet -> Widget
>> addHtml :: Html -> Widget
>> addHamletHead :: Hamlet -> Widget
>> addHtmlHead :: Html -> Widget
>> addWidget :: Widget -> Widget
>> addStylesheet :: Route -> Widget
>> addScript :: Route -> Widget
>> 
>> And with the new polymorphic hamlet, I don't think wrapWidget and
>> extractWidget are generally necessary. Nonetheless, I think I'd like
>> to leave extractWidget, in case there is some use case I'm not
>> thinking of. I think it's safe to remove wrapWidget, as it's easy to
>> express it in terms of extractWidget.
>> 
>> Thoughts?
>> 
>> Michael
>> _______________________________________________
>> web-devel mailing list
>> web-devel at haskell.org
>> http://www.haskell.org/mailman/listinfo/web-devel
>> 
> _______________________________________________
> web-devel mailing list
> web-devel at haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel



More information about the web-devel mailing list