[Haskell-cafe] DSL libraries

Dupont Corentin corentin.dupont at gmail.com
Thu Nov 4 14:29:26 EDT 2010


Hello,
With your version it compiles. Thanks.
Corentin

On Thu, Nov 4, 2010 at 7:03 PM, Sebastiaan Visser <s at fvisser.nl> wrote:

> Dupont,
>
> The `AwesomePrelude' (we apologize for this name) is a very experimental
> project that is not a workable library or executable at all. You can better
> consider it to be a `bunch of code' with some interesting ideas and some
> interesting potential.
>
> At least my branch[1] runs on my machine and I'm still able to produce
> javascript code.
>
> But don't expect it to solve any of your problems. ;-) We (at least I)
> still have some ideas for this project and hope we can someday revive it.
>
> Cheers,
> Sebastiaan
>
> [1] https://github.com/sebastiaanvisser/AwesomePrelude
>
> On Nov 4, 2010, at 6:51 PM, Dupont Corentin wrote:
> > Nobody had the compilation messages I had?
> >
> > ---------- Forwarded message ----------
> > From: Dupont Corentin <corentin.dupont at gmail.com>
> > Date: Tue, Nov 2, 2010 at 2:30 PM
> > Subject: [Haskell-cafe] DSL libraries (Was: Map constructor in a DSL)
> > To: steffen <steffen.siering at googlemail.com>, haskell-cafe at haskell.org
> >
> >
> > Hello Steffen,
> > can you compile AwesomePrelude?
> > I've got error messages (see below).
> >
> > By the way, I've looked at some DSLs made in Haskell, if I don't mistake
> there are lots of similarities between them.
> > There similarities could be put in a library to help the implementors of
> a DSL, more or less like AwesomePrelude.
> >
> > Is there already packages on Hackage dealing with that?
> >
> > Cheers,
> > Corentin
> >
> > AwesomePrelude compilation error:
> > I'm using GHC 6.12.1.
> >
> > > cd tomlokhorst-AwesomePrelude-9819315
> > > cabal install
> > (...)
> > Warning: Lang.Haskell: Instances of type and data families are not yet
> supported. Instances of the following families will be filtered out:  H
> >
> >
> > Then, when trying with a very simple GATD in GHCI, I've got:
> >
> > <interactive>: HSAwesomePrelude-0.1.0.o: unknown symbol
> `AwesomePreludezm0zi1zi0_
> > CompilerziLiftDefinitions_inline_closure'
> > ghc: unable to load package `AwesomePrelude-0.1.0'
> >
> >
> >
> > On Thu, Oct 28, 2010 at 2:02 PM, steffen <steffen.siering at googlemail.com>
> wrote:
> > I think you would love to have a look at AwesomePrelude[1] or a fork
> > of AwesomePrelude using associated types[2]
> > Some more background information by Tom Lokhorst [3][4].
> >
> > [1] http://github.com/tomlokhorst/AwesomePrelude
> > [2] http://github.com/urso/AwesomePrelude
> > [3] http://tom.lokhorst.eu/2009/09/deeply-embedded-dsls
> > [4] http://tom.lokhorst.eu/2010/02/awesomeprelude-presentation-video
> >
> > On 28 Okt., 12:09, Dupont Corentin <corentin.dup... at gmail.com> wrote:
> > > Thank you for your rich responses.
> > >
> > > Indeed I think I miss some thinks in my DSL, that would make things
> easier
> > > to deal with lists and first class functions.
> > > I don't really know what for now.
> > > Perhaps a List Constructor? Or a constructor on functions like yours
> Ryan?
> > > EAp :: Exp ref (a -> b) -> Exp ref a -> Exp ref b
> > > It's from which DSL? It is accessible on the net?
> > >
> > > Chris suggested me that I can only define the Foldr constructor and
> deduce
> > > Map from it.
> > > But maybe I have to add a List constructor for that.
> > >
> > > But in the suggestions from Ryan and Brandon I don't understand why I
> should
> > > add an extra type parameter and what it is!
> > >
> > > Steffen: Wow nice. I'll integrate that ;)
> > >
> > > I'm also looking at the Atom's DSL to get inspiration.
> > > Something I don't understand in it is that it has two languages, on
> typed:
> > >
> > > data E a where
> > >   VRef    :: V a -> E a
> > >   Const   :: a -> E a
> > >   Cast    :: (NumE a, NumE b) => E a -> E b
> > >   Add     :: NumE a => E a -> E a -> E a
> > > etc.
> > >
> > > And, along with it, an untyped counterpart:
> > >
> > > -- | An untyped term.
> > > data UE
> > >   = UVRef UV
> > >   | UConst Const
> > >   | UCast  Type UE
> > >   | UAdd   UE UE
> > > etc.
> > >
> > > What that for? What's the use of having beautiful GADT if you have to
> > > maintain an untyped ADT aside??
> > >
> > > Corentin
> > >
> > > _______________________________________________
> > > Haskell-Cafe mailing list
> > > Haskell-C... at haskell.orghttp://
> www.haskell.org/mailman/listinfo/haskell-cafe
> > _______________________________________________
> > Haskell-Cafe mailing list
> > 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/20101104/0465976f/attachment.html


More information about the Haskell-Cafe mailing list