sig   type window   type screen   type terminal   type chtype = int   type attr_t = int   type err = bool   val initscr : unit -> Curses.window   val endwin : unit -> unit   val isendwin : unit -> bool   val newterm : string -> Unix.file_descr -> Unix.file_descr -> Curses.screen   val set_term : Curses.screen -> unit   val delscreen : Curses.screen -> unit   val stdscr : unit -> Curses.window   val getyx : Curses.window -> int * int   val getparyx : Curses.window -> int * int   val getbegyx : Curses.window -> int * int   val getmaxyx : Curses.window -> int * int   val move : int -> int -> Curses.err   val wmove : Curses.window -> int -> int -> Curses.err   module Acs :     sig       type acs = {         ulcorner : Curses.chtype;         llcorner : Curses.chtype;         urcorner : Curses.chtype;         lrcorner : Curses.chtype;         ltee : Curses.chtype;         rtee : Curses.chtype;         btee : Curses.chtype;         ttee : Curses.chtype;         hline : Curses.chtype;         vline : Curses.chtype;         plus : Curses.chtype;         s1 : Curses.chtype;         s9 : Curses.chtype;         diamond : Curses.chtype;         ckboard : Curses.chtype;         degree : Curses.chtype;         plminus : Curses.chtype;         bullet : Curses.chtype;         larrow : Curses.chtype;         rarrow : Curses.chtype;         darrow : Curses.chtype;         uarrow : Curses.chtype;         board : Curses.chtype;         lantern : Curses.chtype;         block : Curses.chtype;         s3 : Curses.chtype;         s7 : Curses.chtype;         lequal : Curses.chtype;         gequal : Curses.chtype;         pi : Curses.chtype;         nequal : Curses.chtype;         sterling : Curses.chtype;       }       val bssb : Curses.Acs.acs -> Curses.chtype       val ssbb : Curses.Acs.acs -> Curses.chtype       val bbss : Curses.Acs.acs -> Curses.chtype       val sbbs : Curses.Acs.acs -> Curses.chtype       val sbss : Curses.Acs.acs -> Curses.chtype       val sssb : Curses.Acs.acs -> Curses.chtype       val ssbs : Curses.Acs.acs -> Curses.chtype       val bsss : Curses.Acs.acs -> Curses.chtype       val bsbs : Curses.Acs.acs -> Curses.chtype       val sbsb : Curses.Acs.acs -> Curses.chtype       val ssss : Curses.Acs.acs -> Curses.chtype     end   val get_acs_codes : unit -> Curses.Acs.acs   val addch : Curses.chtype -> Curses.err   val waddch : Curses.window -> Curses.chtype -> Curses.err   val mvaddch : int -> int -> Curses.chtype -> Curses.err   val mvwaddch : Curses.window -> int -> int -> Curses.chtype -> Curses.err   val echochar : Curses.chtype -> Curses.err   val wechochar : Curses.window -> Curses.chtype -> Curses.err   val addchstr : Curses.chtype array -> Curses.err   val waddchstr : Curses.window -> Curses.chtype array -> Curses.err   val mvaddchstr : int -> int -> Curses.chtype array -> Curses.err   val mvwaddchstr :     Curses.window -> int -> int -> Curses.chtype array -> Curses.err   val addchnstr : Curses.chtype array -> int -> int -> Curses.err   val waddchnstr :     Curses.window -> Curses.chtype array -> int -> int -> Curses.err   val mvaddchnstr :     int -> int -> Curses.chtype array -> int -> int -> Curses.err   val mvwaddchnstr :     Curses.window ->     int -> int -> Curses.chtype array -> int -> int -> Curses.err   val addstr : string -> Curses.err   val waddstr : Curses.window -> string -> Curses.err   val mvaddstr : int -> int -> string -> Curses.err   val mvwaddstr : Curses.window -> int -> int -> string -> Curses.err   val addnstr : string -> int -> int -> Curses.err   val waddnstr : Curses.window -> string -> int -> int -> Curses.err   val mvaddnstr : int -> int -> string -> int -> int -> Curses.err   val mvwaddnstr :     Curses.window -> int -> int -> string -> int -> int -> Curses.err   val insch : Curses.chtype -> Curses.err   val winsch : Curses.window -> Curses.chtype -> Curses.err   val mvinsch : int -> int -> Curses.chtype -> Curses.err   val mvwinsch : Curses.window -> int -> int -> Curses.chtype -> Curses.err   val insstr : string -> Curses.err   val winsstr : Curses.window -> string -> Curses.err   val mvinsstr : int -> int -> string -> Curses.err   val mvwinsstr : Curses.window -> int -> int -> string -> Curses.err   val insnstr : string -> int -> int -> Curses.err   val winsnstr : Curses.window -> string -> int -> int -> Curses.err   val mvinsnstr : int -> int -> string -> int -> int -> Curses.err   val mvwinsnstr :     Curses.window -> int -> int -> string -> int -> int -> Curses.err   val delch : unit -> Curses.err   val wdelch : Curses.window -> Curses.err   val mvdelch : int -> int -> Curses.err   val mvwdelch : Curses.window -> int -> int -> Curses.err   module A :     sig       val normal : int       val attributes : int       val chartext : int       val color : int       val standout : int       val underline : int       val reverse : int       val blink : int       val dim : int       val bold : int       val altcharset : int       val invis : int       val protect : int       val horizontal : int       val left : int       val low : int       val right : int       val top : int       val vertical : int       val combine : int list -> int       val color_pair : int -> int       val pair_number : int -> int     end   module WA :     sig       val normal : int       val attributes : int       val chartext : int       val color : int       val standout : int       val underline : int       val reverse : int       val blink : int       val dim : int       val bold : int       val altcharset : int       val invis : int       val protect : int       val horizontal : int       val left : int       val low : int       val right : int       val top : int       val vertical : int       val combine : int list -> int       val color_pair : int -> int       val pair_number : int -> int     end   val attroff : int -> unit   val wattroff : Curses.window -> int -> unit   val attron : int -> unit   val wattron : Curses.window -> int -> unit   val attrset : int -> unit   val wattrset : Curses.window -> int -> unit   val standend : unit -> unit   val wstandend : Curses.window -> unit   val standout : unit -> unit   val wstandout : Curses.window -> unit   val attr_off : Curses.attr_t -> unit   val wattr_off : Curses.window -> Curses.attr_t -> unit   val attr_on : Curses.attr_t -> unit   val wattr_on : Curses.window -> Curses.attr_t -> unit   val attr_set : Curses.attr_t -> int -> unit   val wattr_set : Curses.window -> Curses.attr_t -> int -> unit   val chgat : int -> Curses.attr_t -> int -> unit   val wchgat : Curses.window -> int -> Curses.attr_t -> int -> unit   val mvchgat : int -> int -> int -> Curses.attr_t -> int -> unit   val mvwchgat :     Curses.window -> int -> int -> int -> Curses.attr_t -> int -> unit   val inch : unit -> Curses.chtype   val winch : Curses.window -> Curses.chtype   val mvinch : int -> int -> Curses.chtype   val mvwinch : Curses.window -> int -> int -> Curses.chtype   val inchstr : Curses.chtype array -> Curses.err   val winchstr : Curses.window -> Curses.chtype array -> Curses.err   val mvinchstr : int -> int -> Curses.chtype array -> Curses.err   val mvwinchstr :     Curses.window -> int -> int -> Curses.chtype array -> Curses.err   val inchnstr : Curses.chtype array -> int -> int -> Curses.err   val winchnstr :     Curses.window -> Curses.chtype array -> int -> int -> Curses.err   val mvinchnstr :     int -> int -> Curses.chtype array -> int -> int -> Curses.err   val mvwinchnstr :     Curses.window ->     int -> int -> Curses.chtype array -> int -> int -> Curses.err   val instr : string -> Curses.err   val winstr : Curses.window -> string -> Curses.err   val mvinstr : int -> int -> string -> Curses.err   val mvwinstr : Curses.window -> int -> int -> string -> Curses.err   val innstr : string -> int -> int -> Curses.err   val winnstr : Curses.window -> string -> int -> int -> Curses.err   val mvinnstr : int -> int -> string -> int -> int -> Curses.err   val mvwinnstr :     Curses.window -> int -> int -> string -> int -> int -> Curses.err   val bkgdset : Curses.chtype -> unit   val wbkgdset : Curses.window -> Curses.chtype -> unit   val bkgd : Curses.chtype -> unit   val wbkgd : Curses.window -> Curses.chtype -> unit   val getbkgd : Curses.window -> Curses.chtype   val deleteln : unit -> Curses.err   val wdeleteln : Curses.window -> Curses.err   val insdelln : int -> Curses.err   val winsdelln : Curses.window -> int -> Curses.err   val insertln : unit -> Curses.err   val winsertln : Curses.window -> Curses.err   module Key :     sig       val code_yes : int       val min : int       val break : int       val down : int       val up : int       val left : int       val right : int       val home : int       val backspace : int       val f0 : int       val dl : int       val il : int       val dc : int       val ic : int       val eic : int       val clear : int       val eos : int       val eol : int       val sf : int       val sr : int       val npage : int       val ppage : int       val stab : int       val ctab : int       val catab : int       val enter : int       val sreset : int       val reset : int       val print : int       val ll : int       val a1 : int       val a3 : int       val b2 : int       val c1 : int       val c3 : int       val btab : int       val beg : int       val cancel : int       val close : int       val command : int       val copy : int       val create : int       val end_ : int       val exit : int       val find : int       val help : int       val mark : int       val message : int       val move : int       val next : int       val open_ : int       val options : int       val previous : int       val redo : int       val reference : int       val refresh : int       val replace : int       val restart : int       val resume : int       val save : int       val sbeg : int       val scancel : int       val scommand : int       val scopy : int       val screate : int       val sdc : int       val sdl : int       val select : int       val send : int       val seol : int       val sexit : int       val sfind : int       val shelp : int       val shome : int       val sic : int       val sleft : int       val smessage : int       val smove : int       val snext : int       val soptions : int       val sprevious : int       val sprint : int       val sredo : int       val sreplace : int       val sright : int       val srsume : int       val ssave : int       val ssuspend : int       val sundo : int       val suspend : int       val undo : int       val mouse : int       val resize : int       val max : int       val f : int -> int     end   val getch : unit -> int   val wgetch : Curses.window -> int   val mvgetch : int -> int -> int   val mvwgetch : Curses.window -> int -> int -> int   val ungetch : int -> Curses.err   val getstr : string -> Curses.err   val wgetstr : Curses.window -> string -> Curses.err   val mvgetstr : int -> int -> string -> Curses.err   val mvwgetstr : Curses.window -> int -> int -> string -> Curses.err   val getnstr : string -> int -> int -> Curses.err   val wgetnstr : Curses.window -> string -> int -> int -> Curses.err   val mvgetnstr : int -> int -> string -> int -> int -> Curses.err   val mvwgetnstr :     Curses.window -> int -> int -> string -> int -> int -> Curses.err   val newwin : int -> int -> int -> int -> Curses.window   val delwin : Curses.window -> Curses.err   val mvwin : Curses.window -> int -> int -> Curses.err   val subwin : Curses.window -> int -> int -> int -> int -> Curses.window   val derwin : Curses.window -> int -> int -> int -> int -> Curses.window   val mvderwin : Curses.window -> int -> int -> Curses.err   val dupwin : Curses.window -> Curses.window   val wsyncup : Curses.window -> unit   val syncok : Curses.window -> bool -> Curses.err   val wcursyncup : Curses.window -> unit   val wsyncdown : Curses.window -> unit   val winch_handler_on : unit -> unit   val winch_handler_off : unit -> unit   val get_size : unit -> int * int   val get_size_fd : Unix.file_descr -> int * int   val null_window : Curses.window   val refresh : unit -> Curses.err   val wrefresh : Curses.window -> Curses.err   val wnoutrefresh : Curses.window -> Curses.err   val doupdate : unit -> Curses.err   val redrawwin : Curses.window -> Curses.err   val wredrawln : Curses.window -> int -> int -> Curses.err   val wresize : Curses.window -> int -> int -> Curses.err   val resizeterm : int -> int -> Curses.err   val scroll : Curses.window -> Curses.err   val scrl : int -> Curses.err   val wscrl : Curses.window -> int -> Curses.err   val touchwin : Curses.window -> Curses.err   val touchline : Curses.window -> int -> int -> Curses.err   val untouchwin : Curses.window -> Curses.err   val wtouchln : Curses.window -> int -> int -> bool -> Curses.err   val is_linetouched : Curses.window -> int -> int   val is_wintouched : Curses.window -> bool   val erase : unit -> unit   val werase : Curses.window -> unit   val clear : unit -> unit   val wclear : Curses.window -> unit   val clrtobot : unit -> unit   val wclrtobot : Curses.window -> unit   val clrtoeol : unit -> unit   val wclrtoeol : Curses.window -> unit   val overlay : Curses.window -> Curses.window -> Curses.err   val overwrite : Curses.window -> Curses.window -> Curses.err   val copywin :     Curses.window ->     Curses.window ->     int -> int -> int -> int -> int -> int -> bool -> Curses.err   val border :     Curses.chtype ->     Curses.chtype ->     Curses.chtype ->     Curses.chtype ->     Curses.chtype -> Curses.chtype -> Curses.chtype -> Curses.chtype -> unit   val wborder :     Curses.window ->     Curses.chtype ->     Curses.chtype ->     Curses.chtype ->     Curses.chtype ->     Curses.chtype -> Curses.chtype -> Curses.chtype -> Curses.chtype -> unit   val box : Curses.window -> Curses.chtype -> Curses.chtype -> unit   val hline : Curses.chtype -> int -> unit   val whline : Curses.window -> Curses.chtype -> int -> unit   val mvhline : int -> int -> Curses.chtype -> int -> unit   val mvwhline : Curses.window -> int -> int -> Curses.chtype -> int -> unit   val vline : Curses.chtype -> int -> unit   val wvline : Curses.window -> Curses.chtype -> int -> unit   val mvvline : int -> int -> Curses.chtype -> int -> unit   val mvwvline : Curses.window -> int -> int -> Curses.chtype -> int -> unit   val newpad : int -> int -> Curses.window   val subpad : Curses.window -> int -> int -> int -> int -> Curses.window   val prefresh :     Curses.window -> int -> int -> int -> int -> int -> int -> Curses.err   val pnoutrefresh :     Curses.window -> int -> int -> int -> int -> int -> int -> Curses.err   val pechochar : Curses.window -> Curses.chtype -> Curses.err   module Color :     sig       val black : int       val red : int       val green : int       val yellow : int       val blue : int       val magenta : int       val cyan : int       val white : int     end   val start_color : unit -> Curses.err   val use_default_colors : unit -> Curses.err   val init_pair : int -> int -> int -> Curses.err   val init_color : int -> int -> int -> int -> Curses.err   val has_colors : unit -> bool   val can_change_color : unit -> bool   val color_content : int -> int * int * int   val pair_content : int -> int * int   val colors : unit -> int   val color_pairs : unit -> int   val cbreak : unit -> Curses.err   val halfdelay : int -> Curses.err   val nocbreak : unit -> Curses.err   val echo : unit -> Curses.err   val noecho : unit -> Curses.err   val intrflush : Curses.window -> bool -> Curses.err   val keypad : Curses.window -> bool -> Curses.err   val meta : Curses.window -> bool -> Curses.err   val nodelay : Curses.window -> bool -> Curses.err   val raw : unit -> Curses.err   val noraw : unit -> Curses.err   val noqiflush : unit -> unit   val qiflush : unit -> unit   val notimeout : Curses.window -> bool -> Curses.err   val timeout : int -> unit   val wtimeout : Curses.window -> int -> unit   val typeahead : Unix.file_descr -> Curses.err   val notypeahead : unit -> Curses.err   val clearok : Curses.window -> bool -> unit   val idlok : Curses.window -> bool -> unit   val idcok : Curses.window -> bool -> unit   val immedok : Curses.window -> bool -> unit   val leaveok : Curses.window -> bool -> unit   val setscrreg : int -> int -> Curses.err   val wsetscrreg : Curses.window -> int -> int -> Curses.err   val scrollok : Curses.window -> bool -> unit   val nl : unit -> unit   val nonl : unit -> unit   val slk_init : int -> Curses.err   val slk_set : int -> string -> int -> Curses.err   val slk_refresh : unit -> Curses.err   val slk_noutrefresh : unit -> Curses.err   val slk_label : int -> string   val slk_clear : unit -> Curses.err   val slk_restore : unit -> Curses.err   val slk_touch : unit -> Curses.err   val slk_attron : Curses.attr_t -> Curses.err   val slk_attroff : Curses.attr_t -> Curses.err   val slk_attrset : Curses.attr_t -> Curses.err   val mousemask : int -> int * int   val beep : unit -> Curses.err   val flash : unit -> Curses.err   val unctrl : Curses.chtype -> string   val keyname : int -> string   val filter : unit -> unit   val use_env : bool -> unit   val putwin : Curses.window -> Unix.file_descr -> Curses.err   val getwin : Unix.file_descr -> Curses.window   val delay_output : int -> Curses.err   val flushinp : unit -> unit   val scr_dump : string -> Curses.err   val scr_restore : string -> Curses.err   val scr_init : string -> Curses.err   val scr_set : string -> Curses.err   val baudrate : unit -> int   val erasechar : unit -> char   val has_ic : unit -> bool   val has_il : unit -> bool   val killchar : unit -> char   val longname : unit -> string   val termattrs : unit -> Curses.attr_t   val termname : unit -> string   val tgetent : string -> bool   val tgetflag : string -> bool   val tgetnum : string -> int   val tgetstr : string -> bool   val tgoto : string -> int -> int -> string   val setupterm : string -> Unix.file_descr -> Curses.err   val setterm : string -> Curses.err   val cur_term : unit -> Curses.terminal   val set_curterm : Curses.terminal -> Curses.terminal   val del_curterm : Curses.terminal -> Curses.err   val restartterm : string -> Unix.file_descr -> Curses.err   val putp : string -> Curses.err   val vidattr : Curses.chtype -> Curses.err   val mvcur : int -> int -> int -> int -> Curses.err   val tigetflag : string -> bool   val tigetnum : string -> int   val tigetstr : string -> string   val tputs : string -> int -> (char -> unit) -> Curses.err   val vidputs : Curses.chtype -> (char -> unit) -> Curses.err   val tparm : string -> int array -> string   val bool_terminfo_variable : int -> string * string * string   val num_terminfo_variable : int -> string * string * string   val str_terminfo_variable : int -> string * string * string   val bool_terminfo_variables : (string, string * string) Hashtbl.t   val num_terminfo_variables : (string, string * string) Hashtbl.t   val str_terminfo_variables : (string, string * string) Hashtbl.t   val def_prog_mode : unit -> unit   val def_shell_mode : unit -> unit   val reset_prog_mode : unit -> unit   val reset_shell_mode : unit -> unit   val resetty : unit -> unit   val savetty : unit -> unit   val getsyx : unit -> int * int   val setsyx : int -> int -> unit   val curs_set : int -> Curses.err   val napms : int -> unit   val ripoffline : bool -> unit   val get_ripoff : unit -> Curses.window * int   module Curses_config : sig val wide_ncurses : bool end end