What happens when one declares a type without binding it to anything:
type a_type
type b_type
let a : a_type = (* ? *)
I ran into this while reading BuckleScript FFI manual. The code for binding to a JS object looks like this:
type t
external create_date : unit -> t = "Date" [@@bs.new]
let date = create_date ()
BuckleScript's specificities aside, t
is used as a valid type, which in this case looks like it's acting as a polymorphic type for a generic external JS type.
I have to apologize for asking such rudimentary question, but this is not documented anywhere I've looked into. Any pointers are appreciated.