Module Nvim_internal.Phantom

type _ t =
  1. | Nil : unit t
  2. | Int : int t
  3. | Bool : bool t
  4. | Float : float t
  5. | Array : 'a t -> 'a list t
  6. | Tuple2 : 'a t * 'b t -> ('a * 'b) t
  7. | Dict : Msgpack.t Core.String.Map.t t
  8. | String : string t
  9. | Buffer : buffer t
  10. | Window : window t
  11. | Tabpage : tabpage t
  12. | Object : Msgpack.t t
  13. | Custom : (module Msgpack.Msgpackable with type t = 'a) -> 'a t

For use in pattern matching. For example, if you have a 'a Phantom.t * 'a, if a pattern match on the phantom succeeds on Int, then 'a unifies with int. Use Custom for serialization & deserialization of custom types.

val sexp_of_t : ('a__001_ -> Sexplib0.Sexp.t) -> 'a__001_ t -> Sexplib0.Sexp.t
val of_msgpack : 'a t -> Msgpack.t -> 'a Core.Or_error.t
val to_msgpack : 'a t -> 'a -> Msgpack.t