Module Operation.Unary

module Int_op : sig ... end
module Float_op : sig ... end
type 'mode t =
  1. | Integral of 'mode Integral.t * Int_op.t
  2. | Floating of 'mode Floating.t * Float_op.t
  3. | Static_cast of {
    1. src : any_locality_mode scalar;
    2. dst : 'mode scalar;
    }
    (*

    Static_cast performs a conversion between numeric types, which may include (un)tagging or (un)boxing. The jane/doc/scalars.md file contains detailed documentation of the semantics. The middle end expands the static cast operations into finer-grained primitives (for example %int64_as_int, which is represented as a static case, will turn into an unboxing followed by an int64 -> int conversion, the latter of which takes the integer modulo 2^63 (2^31 on 32-bit targets).

    *)
val map : 'a t -> f:('a -> 'b) -> 'b t
val info : 'a t -> 'a info