1. 06 Nov, 2003 2 commits
    • simonpj's avatar
      [project @ 2003-11-06 17:09:59 by simonpj] · 5ed4d1e2
      simonpj authored
      ------------------------------------
      	Major increment for Template Haskell
      	------------------------------------
      
      1.  New abstract data type "Name" which appears where String used to be.
          E.g. 	data Exp = VarE Name | ...
      
      2.  New syntax 'x and ''T, for quoting Names.  It's rather like [| x |]
          and [t| T |] respectively, except that
      
      	a) it's non-monadic:  'x :: Name
      	b) you get a Name not an Exp or Type
      
      3.  reify is an ordinary function
      	reify :: Name -> Q Info
          New data type Info which tells what TH knows about Name
      
      4.  Local variables work properly.  So this works now (crashed before):
      	f x = $( [| x |] )
      
      5.  THSyntax is split up into three modules:
      
        Language.Haskell.TH		TH "clients" import this
      
        Language.Haskell.TH.THSyntax	data type declarations and internal stuff
      
        Language.Haskell.TH.THLib	Support library code (all re-exported
      				by TH), including smart constructors and
      				pretty printer
      
      6.  Error reporting and recovery are in (not yet well tested)
      
      	report :: Bool {- True <=> fatal -} -> String -> Q ()
      	recover :: Q a -> Q a -> Q a
      
      7.  Can find current module
      
      	currentModule :: Q String
      
      
      Much other cleaning up, needless to say.
      5ed4d1e2
    • simonmar's avatar
      [project @ 2003-11-06 10:12:19 by simonmar] · efd7221c
      simonmar authored
      wibble
      efd7221c
  2. 05 Nov, 2003 1 commit
  3. 30 Oct, 2003 1 commit
  4. 29 Oct, 2003 1 commit
  5. 10 Sep, 2003 1 commit
  6. 18 Jun, 2003 1 commit
  7. 08 Jun, 2003 1 commit
  8. 06 Jun, 2003 1 commit
  9. 21 May, 2003 2 commits
    • igloo's avatar
      [project @ 2003-05-21 18:07:30 by igloo] · 3a28b488
      igloo authored
      The Great Renaming. I hope I've kept everything in sync - and all the tests
      pass. Now datatypes follow the
      
      data Foo = <a kind of Foo>Foo
               | <another kind of Foo>Foo
      
      convention and the smart constructors can be uniformly created by
      lowercasing the first letter of the constructor.
      3a28b488
    • igloo's avatar
      [project @ 2003-05-21 02:58:40 by igloo] · 3319c67d
      igloo authored
      Added support for newtypes to TH and altered a test for them.
      3319c67d
  10. 04 May, 2003 1 commit
  11. 03 May, 2003 1 commit
    • igloo's avatar
      [project @ 2003-05-03 22:11:52 by igloo] · 43a4dd0d
      igloo authored
      Update testsuite in line with recent TH changes.
      
      Added a couple of cases to TH_repE1 and added a new TH_repE2 that also
      splices things back in and checks they can be printed correctly.
      43a4dd0d
  12. 10 Dec, 2002 2 commits
  13. 28 Nov, 2002 1 commit
  14. 22 Nov, 2002 1 commit
  15. 21 Nov, 2002 1 commit
  16. 20 Nov, 2002 2 commits
    • chak's avatar
      [project @ 2002-11-20 12:34:43 by chak] · 686d64b4
      chak authored
      TH:
      - We are forcing importing THSyntax.Q at every top splice now; this suffices
        to get simple splices that do not involve reifyDecl or declaration
        quasi-quotes to work.  NB: This worked already when the construction of the
        Dec term and the splice were in separated modules, but not when they are in
        the same (see the regression test "TH_spliceDecl1.hs").
      - The tests "TH_spliceDecl2.hs" and "TH_spliceDecl3.hs" use toplevel splices
        together with quasi-quoted and reifyDecl.  These currently still fail, as
        importing of some of the required type constructors from THSyntax isn't
        forced.
      686d64b4
    • chak's avatar
      [project @ 2002-11-20 07:19:13 by chak] · a714f235
      chak authored
      TH: Revised type variable handling in toplevel decls (became necessary due to
      recent addition of foralls in type representations).
      a714f235
  17. 09 Nov, 2002 2 commits
  18. 07 Nov, 2002 1 commit