---input---
(* Internal Syntax *)  
(* Author: Frank Pfenning, Carsten Schuermann *)
(* Modified: Roberto Virga *)

signature INTSYN =
sig

  type cid = int			(* Constant identifier        *)
  type mid = int                        (* Structure identifier       *)
  type csid = int                       (* CS module identifier       *)


  type FgnExp = exn                     (* foreign expression representation *)
  exception UnexpectedFgnExp of FgnExp
                                        (* raised by a constraint solver
					   if passed an incorrect arg *)
  type FgnCnstr = exn                   (* foreign constraint representation *)
  exception UnexpectedFgnCnstr of FgnCnstr
                                        (* raised by a constraint solver
                                           if passed an incorrect arg *)

  (* Contexts *)

  datatype 'a Ctx =			(* Contexts                   *)
    Null				(* G ::= .                    *)
  | Decl of 'a Ctx * 'a			(*     | G, D                 *)
    
  val ctxPop : 'a Ctx -> 'a Ctx
  val ctxLookup: 'a Ctx * int -> 'a
  val ctxLength: 'a Ctx -> int

  datatype Depend =                     (* Dependency information     *)
    No                                  (* P ::= No                   *)
  | Maybe                               (*     | Maybe                *)
  | Meta				(*     | Meta                 *)

  (* expressions *)

  datatype Uni =			(* Universes:                 *)
    Kind				(* L ::= Kind                 *)
  | Type				(*     | Type                 *)

  datatype Exp =			(* Expressions:               *)
    Uni   of Uni			(* U ::= L                    *)
  | Pi    of (Dec * Depend) * Exp	(*     | Pi (D, P). V         *)
  | Root  of Head * Spine		(*     | H @ S                *)
  | Redex of Exp * Spine		(*     | U @ S                *)
  | Lam   of Dec * Exp			(*     | lam D. U             *)
  | EVar  of Exp option ref * Dec Ctx * Exp * (Cnstr ref) list ref
                                        (*     | X<I> : G|-V, Cnstr   *)
  | EClo  of Exp * Sub			(*     | U[s]                 *)
  | AVar  of Exp option ref             (*     | A<I>                 *)

  | FgnExp of csid * FgnExp             (*     | (foreign expression) *)

  | NVar  of int			(*     | n (linear, 
                                               fully applied variable
                                               used in indexing       *)

  and Head =				(* Head:                      *)
    BVar  of int			(* H ::= k                    *)
  | Const of cid			(*     | c                    *)
  | Proj  of Block * int		(*     | #k(b)                *)
  | Skonst of cid			(*     | c#                   *)
  | Def   of cid			(*     | d (strict)           *)
  | NSDef of cid			(*     | d (non strict)       *)
  | FVar  of string * Exp * Sub		(*     | F[s]                 *)
  | FgnConst of csid * ConDec           (*     | (foreign constant)   *)

  and Spine =				(* Spines:                    *)
    Nil					(* S ::= Nil                  *)
  | App   of Exp * Spine		(*     | U ; S                *)
  | SClo  of Spine * Sub		(*     | S[s]                 *)

  and Sub =				(* Explicit substitutions:    *)
    Shift of int			(* s ::= ^n                   *)
  | Dot   of Front * Sub		(*     | Ft.s                 *)

  and Front =				(* Fronts:                    *)
    Idx of int				(* Ft ::= k                   *)
  | Exp of Exp				(*     | U                    *)
  | Axp of Exp				(*     | U                    *)
  | Block of Block			(*     | _x                   *)
  | Undef				(*     | _                    *)

  and Dec =				(* Declarations:              *)
    Dec of string option * Exp		(* D ::= x:V                  *)
  | BDec of string option * (cid * Sub)	(*     | v:l[s]               *)
  | ADec of string option * int	        (*     | v[^-d]               *)
  | NDec of string option 

  and Block =				(* Blocks:                    *)
    Bidx of int				(* b ::= v                    *)
  | LVar of Block option ref * Sub * (cid * Sub)
                                        (*     | L(l[^k],t)           *)
  | Inst of Exp list                    (*     | U1, ..., Un          *)
  (* It would be better to consider having projections count
     like substitutions, then we could have Inst of Sub here, 
     which would simplify a lot of things.  

     I suggest however to wait until the next big overhaul 
     of the system -- cs *)


(*  | BClo of Block * Sub                 (*     | b[s]                 *) *)

  (* constraints *)

  and Cnstr =				(* Constraint:                *)
    Solved                      	(* Cnstr ::= solved           *)
  | Eqn      of Dec Ctx * Exp * Exp     (*         | G|-(U1 == U2)    *)
  | FgnCnstr of csid * FgnCnstr         (*         | (foreign)        *)

  and Status =                          (* Status of a constant:      *)
    Normal                              (*   inert                    *)
  | Constraint of csid * (Dec Ctx * Spine * int -> Exp option)
                                        (*   acts as constraint       *)
  | Foreign of csid * (Spine -> Exp)    (*   is converted to foreign  *)

  and FgnUnify =                        (* Result of foreign unify    *)
    Succeed of FgnUnifyResidual list
    (* succeed with a list of residual operations *)
  | Fail

  and FgnUnifyResidual =
    Assign of Dec Ctx * Exp * Exp * Sub
    (* perform the assignment G |- X = U [ss] *)
  | Delay of Exp * Cnstr ref
    (* delay cnstr, associating it with all the rigid EVars in U  *)

  (* Global signature *)

  and ConDec =			        (* Constant declaration       *)
    ConDec of string * mid option * int * Status
                                        (* a : K : kind  or           *)
              * Exp * Uni	        (* c : A : type               *)
  | ConDef of string * mid option * int	(* a = A : K : kind  or       *)
              * Exp * Exp * Uni		(* d = M : A : type           *)
              * Ancestor                (* Ancestor info for d or a   *)
  | AbbrevDef of string * mid option * int
                                        (* a = A : K : kind  or       *)
              * Exp * Exp * Uni		(* d = M : A : type           *)
  | BlockDec of string * mid option     (* %block l : SOME G1 PI G2   *)
              * Dec Ctx * Dec list
  | BlockDef of string * mid option * cid list
                                        (* %block l = (l1 | ... | ln) *)
  | SkoDec of string * mid option * int	(* sa: K : kind  or           *)
              * Exp * Uni	        (* sc: A : type               *)

  and Ancestor =			(* Ancestor of d or a         *)
    Anc of cid option * int * cid option (* head(expand(d)), height, head(expand[height](d)) *)
                                        (* NONE means expands to {x:A}B *)

  datatype StrDec =                     (* Structure declaration      *)
      StrDec of string * mid option

  (* Form of constant declaration *)
  datatype ConDecForm =
    FromCS				(* from constraint domain *)
  | Ordinary				(* ordinary declaration *)
  | Clause				(* %clause declaration *)

  (* Type abbreviations *)
  type dctx = Dec Ctx			(* G = . | G,D                *)
  type eclo = Exp * Sub   		(* Us = U[s]                  *)
  type bclo = Block * Sub   		(* Bs = B[s]                  *)
  type cnstr = Cnstr ref

  exception Error of string		(* raised if out of space     *)

  (* standard operations on foreign expressions *)
  structure FgnExpStd : sig
    (* convert to internal syntax *)
    structure ToInternal : FGN_OPN where type arg = unit
                                   where type result = Exp

    (* apply function to subterms *)
    structure Map : FGN_OPN where type arg = Exp -> Exp
			    where type result = Exp

    (* apply function to subterms, for effect *)
    structure App : FGN_OPN where type arg = Exp -> unit
			    where type result = unit

    (* test for equality *)
    structure EqualTo : FGN_OPN where type arg = Exp
                                where type result = bool

    (* unify with another term *)
    structure UnifyWith : FGN_OPN where type arg = Dec Ctx * Exp
                                  where type result = FgnUnify

    (* fold a function over the subterms *)
    val fold : (csid * FgnExp) -> (Exp * 'a -> 'a) -> 'a -> 'a
  end

  (* standard operations on foreign constraints *)
  structure FgnCnstrStd : sig
    (* convert to internal syntax *)
    structure ToInternal : FGN_OPN where type arg = unit
                                   where type result = (Dec Ctx * Exp) list

    (* awake *)
    structure Awake : FGN_OPN where type arg = unit
                              where type result = bool

    (* simplify *)
    structure Simplify : FGN_OPN where type arg = unit
                                 where type result = bool
  end
  
  val conDecName   : ConDec -> string
  val conDecParent : ConDec -> mid option
  val conDecImp    : ConDec -> int
  val conDecStatus : ConDec -> Status
  val conDecType   : ConDec -> Exp
  val conDecBlock  : ConDec -> dctx * Dec list
  val conDecUni    : ConDec -> Uni

  val strDecName   : StrDec -> string
  val strDecParent : StrDec -> mid option

  val sgnReset     : unit -> unit
  val sgnSize      : unit -> cid * mid

  val sgnAdd   : ConDec -> cid
  val sgnLookup: cid -> ConDec
  val sgnApp   : (cid -> unit) -> unit

  val sgnStructAdd    : StrDec -> mid
  val sgnStructLookup : mid -> StrDec

  val constType   : cid -> Exp		(* type of c or d             *)
  val constDef    : cid -> Exp		(* definition of d            *)
  val constImp    : cid -> int
  val constStatus : cid -> Status
  val constUni    : cid -> Uni
  val constBlock  : cid -> dctx * Dec list

  (* Declaration Contexts *)

  val ctxDec    : dctx * int -> Dec	(* get variable declaration   *)
  val blockDec  : dctx * Block * int -> Dec 

  (* Explicit substitutions *)

  val id        : Sub			(* id                         *)
  val shift     : Sub			(* ^                          *)
  val invShift  : Sub                   (* ^-1                        *)

  val bvarSub   : int * Sub -> Front    (* k[s]                       *)
  val frontSub  : Front * Sub -> Front	(* H[s]                       *)
  val decSub    : Dec * Sub -> Dec	(* x:V[s]                     *)
  val blockSub  : Block * Sub -> Block  (* B[s]                       *)

  val comp      : Sub * Sub -> Sub	(* s o s'                     *)
  val dot1      : Sub -> Sub		(* 1 . (s o ^)                *)
  val invDot1   : Sub -> Sub		(* (^ o s) o ^-1)             *)

  (* EVar related functions *)

  val newEVar    : dctx * Exp -> Exp	(* creates X:G|-V, []         *) 
  val newAVar    : unit ->  Exp	        (* creates A (bare)           *) 
  val newTypeVar : dctx -> Exp		(* creates X:G|-type, []      *)
  val newLVar    : Sub * (cid * Sub) -> Block	
					(* creates B:(l[^k],t)        *) 

  (* Definition related functions *)
  val headOpt : Exp -> Head option
  val ancestor : Exp -> Ancestor
  val defAncestor : cid -> Ancestor

  (* Type related functions *)

  (* Not expanding type definitions *)
  val targetHeadOpt : Exp -> Head option (* target type family or NONE *)
  val targetHead : Exp -> Head           (* target type family         *)

  (* Expanding type definitions *)
  val targetFamOpt : Exp -> cid option  (* target type family or NONE *)
  val targetFam : Exp -> cid            (* target type family         *)

  (* Used in Flit *)
  val rename : cid * string -> unit

end;  (* signature INTSYN *)

---tokens---
'(*'          Comment.Multiline
' '           Comment.Multiline
'I'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'n'           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'y'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'x'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'  \n'        Text

'(*'          Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
'u'           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'k'           Comment.Multiline
' '           Comment.Multiline
'P'           Comment.Multiline
'f'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'c'           Comment.Multiline
'h'           Comment.Multiline
'u'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n'          Text

'(*'          Comment.Multiline
' '           Comment.Multiline
'M'           Comment.Multiline
'o'           Comment.Multiline
'd'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'R'           Comment.Multiline
'o'           Comment.Multiline
'b'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'V'           Comment.Multiline
'i'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n'        Text

'signature'   Keyword.Reserved
' '           Text
'INTSYN'      Name.Namespace
' '           Text
'='           Punctuation
'\n'          Text

'sig'         Keyword.Reserved
'\n\n  '      Text
'type'        Keyword.Reserved
' '           Text
'cid'         Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'int'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'type'        Keyword.Reserved
' '           Text
'mid'         Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'int'         Name
'                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'u'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'type'        Keyword.Reserved
' '           Text
'csid'        Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'int'         Name
'                       ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'S'           Comment.Multiline
' '           Comment.Multiline
'm'           Comment.Multiline
'o'           Comment.Multiline
'd'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n\n  '    Text
''            Text
'type'        Keyword.Reserved
' '           Text
'FgnExp'      Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'exn'         Name
'                     ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'exception'   Keyword.Reserved
' '           Text
'UnexpectedFgnExp' Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'FgnExp'      Name.Class
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'o'           Comment.Multiline
'l'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'\n'          Comment.Multiline

'\t'          Comment.Multiline
'\t'          Comment.Multiline
'\t'          Comment.Multiline
'\t'          Comment.Multiline
'\t'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'type'        Name.Class
' '           Text
'FgnCnstr'    Name.Class
' '           Text
'='           Name.Class
' '           Text
'exn'         Name.Class
'                   ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'exception'   Name.Class
' '           Text
'UnexpectedFgnCnstr' Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'FgnCnstr'    Name.Class
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'o'           Comment.Multiline
'l'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'datatype'    Name.Class
' '           Text
"'a"          Name.Decorator
' '           Text
'Ctx'         Name
' '           Text
'='           Punctuation
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Null'        Name
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Name
' '           Text
'Decl'        Name
' '           Text
'of'          Keyword.Reserved
' '           Text
"'a"          Name.Decorator
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
"'a"          Name.Decorator
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    \n  '  Text
'val'         Keyword.Reserved
' '           Text
'ctxPop'      Name.Variable
' '           Text
':'           Punctuation
' '           Text
"'a"          Name.Decorator
' '           Text
'Ctx'         Name
' '           Text
'->'          Punctuation
' '           Text
"'a"          Name.Decorator
' '           Text
'Ctx'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'ctxLookup'   Name.Variable
':'           Punctuation
' '           Text
"'a"          Name.Decorator
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'int'         Name
' '           Text
'->'          Punctuation
' '           Text
"'a"          Name.Decorator
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'ctxLength'   Name.Variable
':'           Punctuation
' '           Text
"'a"          Name.Decorator
' '           Text
'Ctx'         Name
' '           Text
'->'          Punctuation
' '           Text
'int'         Name
'\n\n  '      Text
'datatype'    Keyword.Reserved
' '           Text
'Depend'      Keyword.Type
' '           Text
'='           Punctuation
'                     ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
'e'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'No'          Name.Class
'                                  ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'P'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'N'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Maybe'       Name.Class
'                               ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'M'           Comment.Multiline
'a'           Comment.Multiline
'y'           Comment.Multiline
'b'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Meta'        Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'M'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
''            Text
'datatype'    Keyword.Reserved
' '           Text
'Uni'         Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Kind'        Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'L'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'K'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Type'        Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'T'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
''            Text
'datatype'    Keyword.Reserved
' '           Text
'Exp'         Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'E'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Uni'         Name.Class
'   '         Text
'of'          Keyword.Reserved
' '           Text
'Uni'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'L'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Pi'          Name.Class
'    '        Text
'of'          Keyword.Reserved
' '           Text
'('           Punctuation
'Dec'         Name
' '           Text
'*'           Name
' '           Text
'Depend'      Name
')'           Punctuation
' '           Text
'*'           Name
' '           Text
'Exp'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'P'           Comment.Multiline
'i'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'D'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'P'           Comment.Multiline
')'           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
'V'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Root'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'Head'        Name
' '           Text
'*'           Name
' '           Text
'Spine'       Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'H'           Comment.Multiline
' '           Comment.Multiline
'@'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Redex'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Spine'       Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
'@'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Lam'         Name.Class
'   '         Text
'of'          Keyword.Reserved
' '           Text
'Dec'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'm'           Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'EVar'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'option'      Name
' '           Text
'ref'         Name
' '           Text
'*'           Name
' '           Text
'Dec'         Name
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'('           Punctuation
'Cnstr'       Name
' '           Text
'ref'         Name
')'           Punctuation
' '           Text
'list'        Name
' '           Text
'ref'         Name
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'X'           Comment.Multiline
'<'           Comment.Multiline
'I'           Comment.Multiline
'>'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
'|'           Comment.Multiline
'-'           Comment.Multiline
'V'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'EClo'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'AVar'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'option'      Name
' '           Text
'ref'         Name
'             ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
'<'           Comment.Multiline
'I'           Comment.Multiline
'>'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'|'           Punctuation
' '           Text
'FgnExp'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'csid'        Name
' '           Text
'*'           Name
' '           Text
'FgnExp'      Name
'             ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'|'           Punctuation
' '           Text
'NVar'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'int'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'p'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'v'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'i'           Comment.Multiline
'a'           Comment.Multiline
'b'           Comment.Multiline
'l'           Comment.Multiline
'e'           Comment.Multiline
'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'u'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Head'        Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'H'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
'd'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'BVar'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'int'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'H'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Const'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'cid'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Proj'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'Block'       Name
' '           Text
'*'           Name
' '           Text
'int'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'#'           Comment.Multiline
'k'           Comment.Multiline
'('           Comment.Multiline
'b'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Skonst'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'cid'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'#'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Def'         Name.Class
'   '         Text
'of'          Keyword.Reserved
' '           Text
'cid'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'i'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'NSDef'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'cid'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'n'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'i'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'FVar'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'FgnConst'    Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'csid'        Name
' '           Text
'*'           Name
' '           Text
'ConDec'      Name
'           ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Spine'       Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'p'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Nil'         Name.Class
'\t\t\t\t\t'  Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'N'           Comment.Multiline
'i'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'App'         Name.Class
'   '         Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Spine'       Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
';'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'SClo'        Name.Class
'  '          Text
'of'          Keyword.Reserved
' '           Text
'Spine'       Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Sub'         Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'E'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'c'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Shift'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'int'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'^'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Dot'         Name.Class
'   '         Text
'of'          Keyword.Reserved
' '           Text
'Front'       Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
't'           Comment.Multiline
'.'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Front'       Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
'r'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Idx'         Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'int'         Name
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Exp'         Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Axp'         Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Block'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Block'       Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'_'           Comment.Multiline
'x'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Undef'       Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'_'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Dec'         Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Dec'         Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'x'           Comment.Multiline
':'           Comment.Multiline
'V'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'BDec'        Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'('           Punctuation
'cid'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
')'           Punctuation
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'v'           Comment.Multiline
':'           Comment.Multiline
'l'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'ADec'        Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'int'         Name
'\t        '  Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'v'           Comment.Multiline
'['           Comment.Multiline
'^'           Comment.Multiline
'-'           Comment.Multiline
'd'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'NDec'        Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'option'      Name
' \n\n  '     Text
'and'         Keyword.Reserved
' '           Text
'Block'       Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
'c'           Comment.Multiline
'k'           Comment.Multiline
's'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Bidx'        Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'int'         Name
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'v'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'LVar'        Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Block'       Name
' '           Text
'option'      Name
' '           Text
'ref'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
' '           Text
'*'           Name
' '           Text
'('           Punctuation
'cid'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
')'           Punctuation
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'L'           Comment.Multiline
'('           Comment.Multiline
'l'           Comment.Multiline
'['           Comment.Multiline
'^'           Comment.Multiline
'k'           Comment.Multiline
']'           Comment.Multiline
','           Comment.Multiline
't'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Inst'        Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'list'        Name
'                    ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
'1'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'.'           Comment.Multiline
'.'           Comment.Multiline
'.'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'I'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'o'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'a'           Comment.Multiline
'v'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'o'           Comment.Multiline
'j'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'k'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'a'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'I'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'h'           Comment.Multiline
'i'           Comment.Multiline
'c'           Comment.Multiline
'h'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'o'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'm'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
's'           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'\n'          Comment.Multiline

'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'I'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'g'           Comment.Multiline
'g'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'o'           Comment.Multiline
'w'           Comment.Multiline
'e'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'n'           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'h'           Comment.Multiline
'a'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
'\n'          Comment.Multiline

' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'y'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'm'           Comment.Multiline
' '           Comment.Multiline
'-'           Comment.Multiline
'-'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n\n'      Text

'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
'C'           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
'c'           Comment.Multiline
'k'           Comment.Multiline
' '           Comment.Multiline
'*'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'b'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Cnstr'       Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Solved'      Name.Class
'                      \t' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
':'           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'o'           Comment.Multiline
'l'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Eqn'         Name.Class
'      '      Text
'of'          Keyword.Reserved
' '           Text
'Dec'         Name
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
'     '       Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
'|'           Comment.Multiline
'-'           Comment.Multiline
'('           Comment.Multiline
'U'           Comment.Multiline
'1'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
'2'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'FgnCnstr'    Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'csid'        Name
' '           Text
'*'           Name
' '           Text
'FgnCnstr'    Name
'         '   Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Status'      Keyword.Type
' '           Text
'='           Punctuation
'                          ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Normal'      Name.Class
'                              ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Constraint'  Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'csid'        Name
' '           Text
'*'           Name
' '           Text
'('           Punctuation
'Dec'         Name
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'Spine'       Name
' '           Text
'*'           Name
' '           Text
'int'         Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
' '           Text
'option'      Name
')'           Punctuation
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Foreign'     Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'csid'        Name
' '           Text
'*'           Name
' '           Text
'('           Punctuation
'Spine'       Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
')'           Punctuation
'    '        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'FgnUnify'    Keyword.Type
' '           Text
'='           Punctuation
'                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'R'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'l'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Succeed'     Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'FgnUnifyResidual' Name
' '           Text
'list'        Name
'\n    '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'c'           Comment.Multiline
'c'           Comment.Multiline
'e'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
'u'           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Fail'        Name.Class
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'FgnUnifyResidual' Keyword.Type
' '           Text
'='           Punctuation
'\n    '      Text
'Assign'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Dec'         Name
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'\n    '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
'm'           Comment.Multiline
'e'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
'-'           Comment.Multiline
' '           Comment.Multiline
'X'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Delay'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Cnstr'       Name
' '           Text
'ref'         Name
'\n    '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'o'           Comment.Multiline
'c'           Comment.Multiline
'i'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'E'           Comment.Multiline
'V'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
'b'           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'ConDec'      Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'ConDec'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'int'         Name
' '           Text
'*'           Name
' '           Text
'Status'      Name
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'K'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n              ' Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Uni'         Name
'\t        '  Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'ConDef'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'int'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'K'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n              ' Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Uni'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'M'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n              ' Text
'*'           Name
' '           Text
'Ancestor'    Name
'                ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'AbbrevDef'   Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'int'         Name
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'K'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n              ' Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Uni'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'M'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'BlockDec'    Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
'     '       Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'%'           Comment.Multiline
'b'           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
'c'           Comment.Multiline
'k'           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
'O'           Comment.Multiline
'M'           Comment.Multiline
'E'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
'1'           Comment.Multiline
' '           Comment.Multiline
'P'           Comment.Multiline
'I'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
'2'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n              ' Text
'*'           Name
' '           Text
'Dec'         Name
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'Dec'         Name
' '           Text
'list'        Name
'\n  '        Text
'|'           Punctuation
' '           Text
'BlockDef'    Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'cid'         Name
' '           Text
'list'        Name
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'%'           Comment.Multiline
'b'           Comment.Multiline
'l'           Comment.Multiline
'o'           Comment.Multiline
'c'           Comment.Multiline
'k'           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'l'           Comment.Multiline
'1'           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'.'           Comment.Multiline
'.'           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'l'           Comment.Multiline
'n'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'SkoDec'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'int'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'a'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'K'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n              ' Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Uni'         Name
'\t        '  Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'c'           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
':'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'and'         Keyword.Reserved
' '           Text
'Ancestor'    Keyword.Type
' '           Text
'='           Punctuation
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'Anc'         Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'cid'         Name
' '           Text
'option'      Name
' '           Text
'*'           Name
' '           Text
'int'         Name
' '           Text
'*'           Name
' '           Text
'cid'         Name
' '           Text
'option'      Name
' '           Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
'd'           Comment.Multiline
'('           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'('           Comment.Multiline
'd'           Comment.Multiline
')'           Comment.Multiline
')'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'h'           Comment.Multiline
't'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
'd'           Comment.Multiline
'('           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'['           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'h'           Comment.Multiline
't'           Comment.Multiline
']'           Comment.Multiline
'('           Comment.Multiline
'd'           Comment.Multiline
')'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n                                        ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'N'           Comment.Multiline
'O'           Comment.Multiline
'N'           Comment.Multiline
'E'           Comment.Multiline
' '           Comment.Multiline
'm'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'{'           Comment.Multiline
'x'           Comment.Multiline
':'           Comment.Multiline
'A'           Comment.Multiline
'}'           Comment.Multiline
'B'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
''            Text
'datatype'    Keyword.Reserved
' '           Text
'StrDec'      Keyword.Type
' '           Text
'='           Punctuation
'                     ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'S'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'u'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n      '    Text
'StrDec'      Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
' '           Text
'option'      Name
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'datatype'    Keyword.Reserved
' '           Text
'ConDecForm'  Keyword.Type
' '           Text
'='           Punctuation
'\n    '      Text
'FromCS'      Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'r'           Comment.Multiline
'o'           Comment.Multiline
'm'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'o'           Comment.Multiline
'm'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Ordinary'    Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'd'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'|'           Punctuation
' '           Text
'Clause'      Name.Class
'\t\t\t\t'    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'%'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'u'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'T'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'b'           Comment.Multiline
'b'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'v'           Comment.Multiline
'i'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'type'        Keyword.Reserved
' '           Text
'dctx'        Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'Dec'         Name
' '           Text
'Ctx'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
'|'           Comment.Multiline
' '           Comment.Multiline
'G'           Comment.Multiline
','           Comment.Multiline
'D'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'type'        Keyword.Reserved
' '           Text
'eclo'        Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'Exp'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'   \t\t'     Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'type'        Keyword.Reserved
' '           Text
'bclo'        Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'Block'       Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
'   \t\t'     Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'='           Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
''            Text
'type'        Keyword.Reserved
' '           Text
'cnstr'       Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'Cnstr'       Name
' '           Text
'ref'         Name
'\n\n  '      Text
''            Text
'exception'   Keyword.Reserved
' '           Text
'Error'       Name.Class
' '           Text
'of'          Keyword.Reserved
' '           Text
'string'      Name.Class
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'u'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
'c'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'structure'   Name.Class
' '           Text
'FgnExpStd'   Name.Class
' '           Text
':'           Name.Class
' '           Text
'sig'         Name.Class
'\n    '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'n'           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'y'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'x'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'structure'   Name.Class
' '           Text
'ToInternal'  Name.Class
' '           Text
':'           Name.Class
' '           Text
'FGN_OPN'     Name.Class
' '           Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'arg'         Name.Class
' '           Text
'='           Name.Class
' '           Text
'unit'        Name.Class
'\n                                   ' Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'result'      Name.Class
' '           Text
'='           Name.Class
' '           Text
'Exp'         Name.Class
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'p'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'structure'   Name.Class
' '           Text
'Map'         Name.Class
' '           Text
':'           Name.Class
' '           Text
'FGN_OPN'     Name.Class
' '           Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'arg'         Name.Class
' '           Text
'='           Name.Class
' '           Text
'Exp'         Name.Class
' '           Text
'->'          Name.Class
' '           Text
'Exp'         Name.Class
'\n\t\t\t    ' Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'result'      Name.Class
' '           Text
'='           Name.Class
' '           Text
'Exp'         Name.Class
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'p'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
's'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'f'           Comment.Multiline
'f'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'structure'   Name.Class
' '           Text
'App'         Name.Class
' '           Text
':'           Name.Class
' '           Text
'FGN_OPN'     Name.Class
' '           Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'arg'         Name.Class
' '           Text
'='           Name.Class
' '           Text
'Exp'         Name.Class
' '           Text
'->'          Name.Class
' '           Text
'unit'        Name.Class
'\n\t\t\t    ' Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'result'      Name.Class
' '           Text
'='           Name.Class
' '           Text
'unit'        Name.Class
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'q'           Comment.Multiline
'u'           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'structure'   Name.Class
' '           Text
'EqualTo'     Name.Class
' '           Text
':'           Name.Class
' '           Text
'FGN_OPN'     Name.Class
' '           Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'arg'         Name.Class
' '           Text
'='           Name.Class
' '           Text
'Exp'         Name.Class
'\n                                ' Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'result'      Name.Class
' '           Text
'='           Name.Class
' '           Text
'bool'        Name.Class
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'w'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'o'           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'structure'   Name.Class
' '           Text
'UnifyWith'   Name.Class
' '           Text
':'           Name.Class
' '           Text
'FGN_OPN'     Name.Class
' '           Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'arg'         Name.Class
' '           Text
'='           Name.Class
' '           Text
'Dec'         Name.Class
' '           Text
'Ctx'         Name.Class
' '           Text
'*'           Name.Class
' '           Text
'Exp'         Name.Class
'\n                                  ' Text
'where'       Name.Class
' '           Text
'type'        Name.Class
' '           Text
'result'      Name.Class
' '           Text
'='           Name.Class
' '           Text
'FgnUnify'    Name.Class
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'l'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'h'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'm'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'val'         Name.Class
' '           Text
'fold'        Name.Class
' '           Text
':'           Name.Class
' '           Text
'('           Punctuation
'csid'        Name
' '           Text
'*'           Name
' '           Text
'FgnExp'      Name
')'           Punctuation
' '           Text
'->'          Punctuation
' '           Text
'('           Punctuation
'Exp'         Name
' '           Text
'*'           Name
' '           Text
"'a"          Name.Decorator
' '           Text
'->'          Punctuation
' '           Text
"'a"          Name.Decorator
')'           Punctuation
' '           Text
'->'          Punctuation
' '           Text
"'a"          Name.Decorator
' '           Text
'->'          Punctuation
' '           Text
"'a"          Name.Decorator
'\n  '        Text
'end'         Keyword.Reserved
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'structure'   Keyword.Reserved
' '           Text
'FgnCnstrStd' Name.Namespace
' '           Text
':'           Punctuation
' '           Text
'sig'         Keyword.Reserved
'\n    '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
'v'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'r'           Comment.Multiline
'n'           Comment.Multiline
'a'           Comment.Multiline
'l'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'y'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'x'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
'structure'   Keyword.Reserved
' '           Text
'ToInternal'  Name.Namespace
' '           Text
':'           Punctuation
' '           Text
'FGN_OPN'     Name
' '           Text
'where'       Keyword.Reserved
' '           Text
'type'        Keyword.Reserved
' '           Text
'arg'         Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'unit'        Name
'\n                                   ' Text
''            Text
'where'       Keyword.Reserved
' '           Text
'type'        Keyword.Reserved
' '           Text
'result'      Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'('           Punctuation
'Dec'         Name
' '           Text
'Ctx'         Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
')'           Punctuation
' '           Text
'list'        Name
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'a'           Comment.Multiline
'w'           Comment.Multiline
'a'           Comment.Multiline
'k'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
''            Text
'structure'   Keyword.Reserved
' '           Text
'Awake'       Name.Namespace
' '           Text
':'           Punctuation
' '           Text
'FGN_OPN'     Name
' '           Text
'where'       Keyword.Reserved
' '           Text
'type'        Keyword.Reserved
' '           Text
'arg'         Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'unit'        Name
'\n                              ' Text
''            Text
'where'       Keyword.Reserved
' '           Text
'type'        Keyword.Reserved
' '           Text
'result'      Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'bool'        Name
'\n\n    '    Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'm'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'f'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n    '      Text
''            Text
'structure'   Keyword.Reserved
' '           Text
'Simplify'    Name.Namespace
' '           Text
':'           Punctuation
' '           Text
'FGN_OPN'     Name
' '           Text
'where'       Keyword.Reserved
' '           Text
'type'        Keyword.Reserved
' '           Text
'arg'         Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'unit'        Name
'\n                                 ' Text
''            Text
'where'       Keyword.Reserved
' '           Text
'type'        Keyword.Reserved
' '           Text
'result'      Keyword.Type
' '           Text
'='           Punctuation
' '           Text
'bool'        Name
'\n  '        Text
''            Text
'end'         Keyword.Reserved
'\n  \n  '    Text
'val'         Keyword.Reserved
' '           Text
'conDecName'  Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'string'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'conDecParent' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'mid'         Name
' '           Text
'option'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'conDecImp'   Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'int'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'conDecStatus' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'Status'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'conDecType'  Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'conDecBlock' Name.Variable
'  '          Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'dctx'        Name
' '           Text
'*'           Name
' '           Text
'Dec'         Name
' '           Text
'list'        Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'conDecUni'   Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'Uni'         Name
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'strDecName'  Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'StrDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'string'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'strDecParent' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'StrDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'mid'         Name
' '           Text
'option'      Name
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'sgnReset'    Name.Variable
'     '       Text
':'           Punctuation
' '           Text
'unit'        Name
' '           Text
'->'          Punctuation
' '           Text
'unit'        Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'sgnSize'     Name.Variable
'      '      Text
':'           Punctuation
' '           Text
'unit'        Name
' '           Text
'->'          Punctuation
' '           Text
'cid'         Name
' '           Text
'*'           Name
' '           Text
'mid'         Name
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'sgnAdd'      Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'ConDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'cid'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'sgnLookup'   Name.Variable
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'ConDec'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'sgnApp'      Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'('           Punctuation
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'unit'        Name
')'           Punctuation
' '           Text
'->'          Punctuation
' '           Text
'unit'        Name
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'sgnStructAdd' Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'StrDec'      Name
' '           Text
'->'          Punctuation
' '           Text
'mid'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'sgnStructLookup' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'mid'         Name
' '           Text
'->'          Punctuation
' '           Text
'StrDec'      Name
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'constType'   Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'constDef'    Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'f'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'constImp'    Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'int'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'constStatus' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'Status'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'constUni'    Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'Uni'         Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'constBlock'  Name.Variable
'  '          Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'dctx'        Name
' '           Text
'*'           Name
' '           Text
'Dec'         Name
' '           Text
'list'        Name
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'C'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
't'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'ctxDec'      Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'dctx'        Name
' '           Text
'*'           Name
' '           Text
'int'         Name
' '           Text
'->'          Punctuation
' '           Text
'Dec'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'g'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'v'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'i'           Comment.Multiline
'a'           Comment.Multiline
'b'           Comment.Multiline
'l'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'c'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'blockDec'    Name.Variable
'  '          Text
':'           Punctuation
' '           Text
'dctx'        Name
' '           Text
'*'           Name
' '           Text
'Block'       Name
' '           Text
'*'           Name
' '           Text
'int'         Name
' '           Text
'->'          Punctuation
' '           Text
'Dec'         Name
' \n\n  '     Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'E'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
'c'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'u'           Comment.Multiline
'b'           Comment.Multiline
's'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'id'          Name.Variable
'        '    Text
':'           Punctuation
' '           Text
'Sub'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'shift'       Name.Variable
'     '       Text
':'           Punctuation
' '           Text
'Sub'         Name
'\t\t\t'      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'^'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'invShift'    Name.Variable
'  '          Text
':'           Punctuation
' '           Text
'Sub'         Name
'                   ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'^'           Comment.Multiline
'-'           Comment.Multiline
'1'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'bvarSub'     Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'int'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Front'       Name
'    '        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'k'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'frontSub'    Name.Variable
'  '          Text
':'           Punctuation
' '           Text
'Front'       Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Front'       Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'H'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'decSub'      Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'Dec'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Dec'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'x'           Comment.Multiline
':'           Comment.Multiline
'V'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'blockSub'    Name.Variable
'  '          Text
':'           Punctuation
' '           Text
'Block'       Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Block'       Name
'  '          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
'['           Comment.Multiline
's'           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'comp'        Name.Variable
'      '      Text
':'           Punctuation
' '           Text
'Sub'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Sub'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
"'"           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'dot1'        Name.Variable
'      '      Text
':'           Punctuation
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Sub'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'1'           Comment.Multiline
' '           Comment.Multiline
'.'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'^'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'invDot1'     Name.Variable
'   '         Text
':'           Punctuation
' '           Text
'Sub'         Name
' '           Text
'->'          Punctuation
' '           Text
'Sub'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'^'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
' '           Comment.Multiline
'^'           Comment.Multiline
'-'           Comment.Multiline
'1'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'E'           Comment.Multiline
'V'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'val'         Keyword.Reserved
' '           Text
'newEVar'     Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'dctx'        Name
' '           Text
'*'           Name
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
'\t'          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'X'           Comment.Multiline
':'           Comment.Multiline
'G'           Comment.Multiline
'|'           Comment.Multiline
'-'           Comment.Multiline
'V'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'['           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
' \n  '       Text
'val'         Keyword.Reserved
' '           Text
'newAVar'     Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'unit'        Name
' '           Text
'->'          Punctuation
'  '          Text
'Exp'         Name
'\t        '  Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'A'           Comment.Multiline
' '           Comment.Multiline
'('           Comment.Multiline
'b'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
' \n  '       Text
'val'         Keyword.Reserved
' '           Text
'newTypeVar'  Name.Variable
' '           Text
':'           Punctuation
' '           Text
'dctx'        Name
' '           Text
'->'          Punctuation
' '           Text
'Exp'         Name
'\t\t'        Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'X'           Comment.Multiline
':'           Comment.Multiline
'G'           Comment.Multiline
'|'           Comment.Multiline
'-'           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
','           Comment.Multiline
' '           Comment.Multiline
'['           Comment.Multiline
']'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'newLVar'     Name.Variable
'    '        Text
':'           Punctuation
' '           Text
'Sub'         Name
' '           Text
'*'           Name
' '           Text
'('           Punctuation
'cid'         Name
' '           Text
'*'           Name
' '           Text
'Sub'         Name
')'           Punctuation
' '           Text
'->'          Punctuation
' '           Text
'Block'       Name
'\t\n\t\t\t\t\t' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'c'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'B'           Comment.Multiline
':'           Comment.Multiline
'('           Comment.Multiline
'l'           Comment.Multiline
'['           Comment.Multiline
'^'           Comment.Multiline
'k'           Comment.Multiline
']'           Comment.Multiline
','           Comment.Multiline
't'           Comment.Multiline
')'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
' \n\n  '     Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'D'           Comment.Multiline
'e'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'headOpt'     Name.Variable
' '           Text
':'           Punctuation
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'Head'        Name
' '           Text
'option'      Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'ancestor'    Name.Variable
' '           Text
':'           Punctuation
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'Ancestor'    Name
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'defAncestor' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'->'          Punctuation
' '           Text
'Ancestor'    Name
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'T'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
'l'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'u'           Comment.Multiline
'n'           Comment.Multiline
'c'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'N'           Comment.Multiline
'o'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'e'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'targetHeadOpt' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'Head'        Name
' '           Text
'option'      Name
' '           Text
'(*'          Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'a'           Comment.Multiline
'm'           Comment.Multiline
'i'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'N'           Comment.Multiline
'O'           Comment.Multiline
'N'           Comment.Multiline
'E'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'targetHead'  Name.Variable
' '           Text
':'           Punctuation
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'Head'        Name
'           ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'a'           Comment.Multiline
'm'           Comment.Multiline
'i'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'E'           Comment.Multiline
'x'           Comment.Multiline
'p'           Comment.Multiline
'a'           Comment.Multiline
'n'           Comment.Multiline
'd'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'g'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'd'           Comment.Multiline
'e'           Comment.Multiline
'f'           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
'i'           Comment.Multiline
'o'           Comment.Multiline
'n'           Comment.Multiline
's'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'targetFamOpt' Name.Variable
' '           Text
':'           Punctuation
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'cid'         Name
' '           Text
'option'      Name
'  '          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'a'           Comment.Multiline
'm'           Comment.Multiline
'i'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
'o'           Comment.Multiline
'r'           Comment.Multiline
' '           Comment.Multiline
'N'           Comment.Multiline
'O'           Comment.Multiline
'N'           Comment.Multiline
'E'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'targetFam'   Name.Variable
' '           Text
':'           Punctuation
' '           Text
'Exp'         Name
' '           Text
'->'          Punctuation
' '           Text
'cid'         Name
'            ' Text
'(*'          Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'a'           Comment.Multiline
'r'           Comment.Multiline
'g'           Comment.Multiline
'e'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
't'           Comment.Multiline
'y'           Comment.Multiline
'p'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'f'           Comment.Multiline
'a'           Comment.Multiline
'm'           Comment.Multiline
'i'           Comment.Multiline
'l'           Comment.Multiline
'y'           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n\n  '      Text
'(*'          Comment.Multiline
' '           Comment.Multiline
'U'           Comment.Multiline
's'           Comment.Multiline
'e'           Comment.Multiline
'd'           Comment.Multiline
' '           Comment.Multiline
'i'           Comment.Multiline
'n'           Comment.Multiline
' '           Comment.Multiline
'F'           Comment.Multiline
'l'           Comment.Multiline
'i'           Comment.Multiline
't'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n  '        Text
'val'         Keyword.Reserved
' '           Text
'rename'      Name.Variable
' '           Text
':'           Punctuation
' '           Text
'cid'         Name
' '           Text
'*'           Name
' '           Text
'string'      Name
' '           Text
'->'          Punctuation
' '           Text
'unit'        Name
'\n\n'        Text

'end'         Keyword.Reserved
';'           Punctuation
'  '          Text
'(*'          Comment.Multiline
' '           Comment.Multiline
's'           Comment.Multiline
'i'           Comment.Multiline
'g'           Comment.Multiline
'n'           Comment.Multiline
'a'           Comment.Multiline
't'           Comment.Multiline
'u'           Comment.Multiline
'r'           Comment.Multiline
'e'           Comment.Multiline
' '           Comment.Multiline
'I'           Comment.Multiline
'N'           Comment.Multiline
'T'           Comment.Multiline
'S'           Comment.Multiline
'Y'           Comment.Multiline
'N'           Comment.Multiline
' '           Comment.Multiline
'*)'          Comment.Multiline
'\n'          Text
