# Module Cudf_type_parser

    module Cudf_type_parser: sig .. end

    type token =

`|` | `IDENT of `string``
`|` | `PKGNAME of `string``
`|` | `QSTRING of `string``
`|` | `RELOP of `string``
`|` | `POSINT of `string``
`|` | `NEGINT of `string``
`|` | `LBRACKET`
`|` | `RBRACKET`
`|` | `LPAREN`
`|` | `RPAREN`
`|` | `COMMA`
`|` | `PIPE`
`|` | `COLON`
`|` | `EQ`
`|` | `VPKGTRUE`
`|` | `VPKGFALSE`
`|` | `EOL`

    val int_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> int

    val ident_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> string

    val qstring_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> string

    val pkgname_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> Cudf_types.pkgname

    val vpkg_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> Cudf_types.vpkg

    val vpkglist_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> Cudf_types.vpkglist

    val vpkgformula_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> Cudf_types.vpkgformula

    val typedecl_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> Cudf_types.typedecl

    val type_top : (Stdlib.Lexing.lexbuf -> token) ->
           Stdlib.Lexing.lexbuf -> Cudf_types.typ