sig
  type t'
  val scaled : Mlpost.Num.t -> Mlpost.Transform.t'
  val rotated : float -> Mlpost.Transform.t'
  val shifted : Mlpost.Point.t -> Mlpost.Transform.t'
  val slanted : Mlpost.Num.t -> Mlpost.Transform.t'
  val xscaled : Mlpost.Num.t -> Mlpost.Transform.t'
  val yscaled : Mlpost.Num.t -> Mlpost.Transform.t'
  val zscaled : Mlpost.Point.t -> Mlpost.Transform.t'
  val reflect : Mlpost.Point.t -> Mlpost.Point.t -> Mlpost.Transform.t'
  val rotate_around : Mlpost.Point.t -> float -> Mlpost.Transform.t'
  type matrix = {
    xx : Mlpost.Num.t;
    yx : Mlpost.Num.t;
    xy : Mlpost.Num.t;
    yy : Mlpost.Num.t;
    x0 : Mlpost.Num.t;
    y0 : Mlpost.Num.t;
  }
  val explicit : Mlpost.Transform.matrix -> Mlpost.Transform.t'
  type t = Mlpost.Transform.t' list
  val id : Mlpost.Transform.t
end