[Haskellcafe] Typed TemplateHaskell?
Simon PeytonJones
simonpj at microsoft.com
Thu May 24 10:47:37 CEST 2012
Maybe take a look at
http://hackage.haskell.org/trac/ghc/blog/Template%20Haskell%20Proposal
 Original Message
 From: haskellcafebounces at haskell.org [mailto:haskellcafe
 bounces at haskell.org] On Behalf Of Tillmann Rendel
 Sent: 23 May 2012 18:20
 To: Haskell Café
 Subject: Re: [Haskellcafe] Typed TemplateHaskell?

 Hi Ilya,

 Ilya Portnov wrote:
 > As far as can I see, using features of last GHC one could write typed
 > TH library relatively easily, and saving backwards compatibility.
 >
 > For example, now we have Q monad and Exp type in "templatehaskell"
 > package. Let's imagine some new package, say "typedtemplatehaskell",
 > with new TQ monad and new polymorphic type Exp :: * > *. Using last
 > GHC's features, one will easily write something like "expr :: Exp
 > String", which will mean that "expr" represents a string expression.
 > And we will need a new function, say runTQ :: TQ a > Q a (or some
 > more complicated type), which will turn TypedTemplateHaskell's
 > constructs into plain TH.

 That would be a good thing to have. But it might be quite hard to
 implement. For example, I guess you might want to have functions like
 this one:

 apply :: Exp (a > b) > Exp a > Exp b

 This function takes two typed expressions and produces an application.
 The types ensure that the generated application will typecheck. Cool.

 But can you do the same thing for lambdas? Lambdas create functions, so
 the type would be something like the following:

 lambda :: ... > Exp (a > b)

 But what would you put instead of the ...?

 I fear that overall, you would have to reimplement Haskell's type system
 in Haskell's type system. Which sounds like a cool thing to do, but
 maybe not so easily.

 Tillmann

 _______________________________________________
 HaskellCafe mailing list
 HaskellCafe at haskell.org
 http://www.haskell.org/mailman/listinfo/haskellcafe
More information about the HaskellCafe
mailing list