sig
  type link_type =
      LnkInt
    | LnkFloat
    | LnkString
    | LnkBool
    | LnkVoid
    | LnkAnything
    | LnkTemplate of string
    | LnkEnumType of string * int
    | LnkEnum of string * int
    | LnkStruct of string * Linkst.link_type list
    | LnkArray of Linkst.link_type
    | LnkList of Linkst.link_type
    | LnkFunction of Linkst.link_type list * Linkst.link_type
    | LnkRef of Linkst.link_type
  type link_expr =
      LnkProvide of string * Linkst.link_type
    | LnkRequire of string * Linkst.link_type
    | LnkCode of string
  type link_st = Linkst.link_expr list
end