To_ast.Ast
val size_ty : size Costlang.Ty.t
type _ t =
| Size : Costlang.Num.t -> size t
| Bool : bool -> bool t
| Unop : unop * size t -> size t
| Binop_size : binop_size * size t * size t -> size t
| Binop_bool : binop_bool * size t * size t -> bool t
| Shift : [ `Left | `Right ] * size t * int -> size t
| Free : Free_variable.t -> size t
| Lam : string * 'a Costlang.Ty.t * 'b t -> ('a -> 'b) t
| App : ('a -> 'b) t * 'a t -> 'b t
| Let : string * 'a t * 'b t -> 'b t
| If : bool t * size t * size t -> size t
| Variable : string * 'a Costlang.Ty.t -> 'a t
val term_size : 'a. 'a t -> int
val type_of : 'a t -> 'a Costlang.Ty.t
val pp : Stdlib.Format.formatter -> _ t -> unit
val to_expression : _ t -> Parsetree.expression
To OCaml parsetree
Existentials
val unpack : 'a Costlang.Ty.t -> packed -> 'a t option
Optimizations