Nobody had the compilation messages I had? ---------- Forwarded message ---------- From: Dupont Corentin <corentin.dup...@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.sier...@googlemail.com>, haskell-cafe@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.sier...@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...@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...@haskell.orghttp:// > www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe