Module ErlangFrontend.ErlangTypes

val type_condition : (IR.Procdesc.t ErlangEnvironment.present, 'a) ErlangEnvironment.t -> (string, ErlangAst.type_, 'b) IStdlib.IStd.Map_intf.Map.t -> (IR.Ident.t * ErlangAst.type_) -> ErlangBlock.t * IR.Exp.t

Given an argument, its type (and a list of constraints), returns a condition that is true if the arguments has the specified type. Also returns a block for intermediate computations.

Given a function spec and a list of identifiers corresponding to function arguments, returns a block that prunes based on the types of the arguments. The assumptions lead to exit_success, while the negation of the assumptions leads to exit_failure.

Similar to prune_spec_args, except that instead of a list of identifiers for arguments we get one identifier for the return.