diff --git a/BNFC-meta.cabal b/BNFC-meta.cabal
--- a/BNFC-meta.cabal
+++ b/BNFC-meta.cabal
@@ -1,5 +1,5 @@
 Name:	        BNFC-meta
-version:        0.4
+version:        0.4.0.1
 cabal-Version:  >= 1.6
 build-type:     Simple
 license:        GPL-2
@@ -44,7 +44,7 @@
     , template-haskell >=2.4&&<2.9
     , haskell-src-meta >= 0.5 && < 1.0
     , happy-meta >= 0.2.0.4 && < 0.3
-    , alex-meta >= 0.3.0.3 && < 0.4
+    , alex-meta >= 0.3.0.5 && < 0.4
     , syb >= 0.2 && <1.0
   Exposed-modules:
     Language.LBNF
diff --git a/examples/typesafe/Example.hs b/examples/typesafe/Example.hs
--- a/examples/typesafe/Example.hs
+++ b/examples/typesafe/Example.hs
@@ -7,7 +7,7 @@
 -- All variables are meta-variables. 
 -- Variables must be declared in the function parameters
 -- Boolean and numeric variables are type checked by Haskell.
-prg n tmp x = [prog|
+prg n tmp x = [$prog|
 f() {
   n = 0;
   x := True ;
diff --git a/examples/typesafe/Typesafe.hs b/examples/typesafe/Typesafe.hs
--- a/examples/typesafe/Typesafe.hs
+++ b/examples/typesafe/Typesafe.hs
@@ -7,8 +7,11 @@
 import Language.LBNF
   
 
-bnfc [lbnf|
+bnfc [$lbnf|
 
+antiquote "[" ":" ":]" ;
+
+ 
 Fun.      Prog     ::=  Ident "(" ")" "{" [Stm] "}" ;
 
 SBAss.    Stm      ::= BVar ":=" BExp ";"  ;
@@ -39,7 +42,7 @@
 (:).      [Stm]    ::= Stm [Stm] ;
 
 internal BVar. BVar ::= Ident ;
-$ .            BVar ::= Ident ;
+$ .             BVar ::= Ident ;
 
 internal NVar. NVar ::= Ident ;
 $.             NVar ::= Ident ;
@@ -54,6 +57,7 @@
 _.  Exp0     ::= Exp1 ;
 _.  Exp1     ::= Exp2 ;
 _.  Exp2     ::= "[" Exp "]" ;
+-- _.  Exp2     ::= Exp3 ;
 
 
 _.  BExp      ::= BExp0 ;
@@ -61,6 +65,8 @@
 _.  BExp1     ::= "(" BExp ")" ;
 
 
+
+-- pragmas
 
 comment "/*" "*/" ;
 comment "//" ;
