The Caret structure contains functions to create and manipulate the caret.  The caret is typically used in edit controls to mark the point where new characters will be inserted.  Usually it is a vertical bar which blinks on and off.

structure Caret :
    type HWND and HBITMAP
    type POINT = { x: int, y: int }
      caretShape =
          CaretBitmap of HBITMAP
        | CaretBlack of {width: int, height: int}
        | CaretGrey of {width: int, height: int}
    val CreateCaret : HWND * caretShape -> unit
    val DestroyCaret : unit -> unit
    val GetCaretBlinkTime : unit -> Time.time
    val GetCaretPos : unit -> POINT
    val HideCaret : HWND -> unit
    val SetCaretBlinkTime : Time.time -> unit
    val SetCaretPos : POINT -> unit
    val ShowCaret : HWND -> bool