[Haskell-cafe] ANN: wizards-1.0: A High level, generic library for interrogative user interfaces

Anton Kholomiov anton.kholomiov at gmail.com
Sun Jul 1 16:13:01 CEST 2012


You have implemented very general idea as
a part of your library (Data type a la carte).
Maybe it's better to make a separate package?
Other developers would benefit from it. I saw some other
packages and they implement it too.


Anton


2012/7/1 Liam O'Connor <liamoc at cse.unsw.edu.au>

> I know it's somewhat evil (:P), but I was unable to implement the
> subsumption constraints (:<:) in a way that avoided it. It's there because
> I'm (ab)using the type-class system to do computation (specifically an O(n)
> search though long chain of coproducts for a specific constructor). E.g,
> determining Foo :<: Bar :+: Foo :+: Baz. There may be a way to rearrange
> the type level stuff to make it go away, perhaps with some new type
> extensions in 7.4 that I haven't studied extensively yet.
>
> This is also a problem in Swierstra's original paper where he introduces
> this technique. In practice, it doesn't pose a problem, because you're not
> meant to define your own instances of :<: anyway, and you shouldn't care
> what order the constructors occur.
>
> Regards,
> Liam O'Connor
>
>
> On Sunday, 1 July 2012 at 6:37 PM, Krzysztof Skrzętnicki wrote:
>
> > Hello,
> >
> > This library looks very nice. Thank you for realeasing it! I realise it
> took quite an effort to write it.
> >
> > Looking from examples on Github I noticed that you use
> -XOverlappingInstances. Why do you need such extension?
> >
> > Best regards,
> > Krzysztof Skrzętnicki
> >
> > On Sun, Jul 1, 2012 at 10:17 AM, Liam O'Connor <liamoc at cse.unsw.edu.au(mailto:
> liamoc at cse.unsw.edu.au)> wrote:
> > > Hi all,
> > >
> > > wizards is an Haskell library designed for the quick and painless
> development of interrogative programs, which revolve around a "dialogue"
> with the user, who is asked a series of questions in a sequence much like
> an installation wizard.
> > >
> > > Everything from interactive system scripts, to installation wizards,
> to full-blown shells can be implemented with the support of wizards.
> > >
> > > It is developed transparently on top of a free monad (see Swierstra's
> excellent paper on this topic at
> http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf (
> http://www.cs.ru.nl/%7EW.Swierstra/Publications/DataTypesALaCarte.pdf)<http://www.cs.ru.nl/%7EW.Swierstra/Publications/DataTypesALaCarte.pdf%29>),
> which separates out the semantics of the program from the wizards
> interface. A variety of backends exist, including a full featured backend
> for Haskeline, a debug-friendly simpler implementation in terms of
> System.IO primitives, and a completely pure implementation modelled as a
> function from an input string to output. It is also possible to write your
> own backends, or extend the existing back-ends with new features.
> > >
> > > While both built-in IO backends operate on a console, there is no
> reason why wizards cannot also be used for making GUI wizard interfaces.
> > >
> > > The library is highly extensible - back-ends can be written or
> extended with the type system helpfully tracking what features are
> supported by which back-ends.
> > >
> > > Installation instructions and some educational examples are at the
> github page:
> > >
> > > https://github.com/liamoc/wizards
> > >
> > > Information on how to write backends or extend backends, as well as
> structured API documentation is available on Hackage:
> > >
> > > http://hackage.haskell.org/package/wizards
> > >
> > > (Or, you can just run cabal haddock to generate the documentation from
> the source).
> > >
> > > Regards,
> > > Liam O'Connor
> > >
> > >
> > > _______________________________________________
> > > Haskell-Cafe mailing list
> > > Haskell-Cafe at haskell.org (mailto:Haskell-Cafe at haskell.org)
> > > http://www.haskell.org/mailman/listinfo/haskell-cafe
> >
>
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120701/2f91b6f5/attachment.htm>


More information about the Haskell-Cafe mailing list