package ppx_deriving_madcast

  1. Overview
  2. Docs

Module MadcastSource

Main access point

Sourceval derive : Ppxlib.Parsetree.core_type -> Ppxlib.Parsetree.expression

madcast ty returns an annotated casting function of type ty. ty must be an arrow type.

  • Raise Invalid_argument "split_arrow" if ty is not an arrow type,
  • Raise NoCastFound if no casting function can be derived,
  • Raise SeveralCastsFound if more than one casting function can be derived and none of them has a stronger priority.

Exceptions

Sourceexception NoCastFound

Exception raised when no cast can be derived for two types

Sourceexception SeveralCastsFound

Exception raised when more than cast can be derived for two types

Lower-level access points

Sourceval find_caster : Ppxlib.Parsetree.core_type -> Ppxlib.Parsetree.core_type -> Ppxlib.Parsetree.expression

Given an input type itype and an output type otype, returns a casting function of type itype -> otype.

  • Raise NoCastFound if no casting function can be derived,
  • Raise SeveralCastsFound if more than one casting function can be derived and none of them has a stronger priority.
Sourceval split_arrow : Ppxlib.Parsetree.core_type -> Ppxlib.Parsetree.core_type * Ppxlib.Parsetree.core_type

split_arrow ty returns the domain and co-domain of an arrow type.

  • Raise Invalid_argument "split_arrow" if ty is not an arrow type
Sourceval annotate : Ppxlib.Parsetree.expression -> Ppxlib.Parsetree.core_type -> Ppxlib.Parsetree.expression

annotate expr ty returns a let expression of the form let (e : ty) = expr in e

OCaml

Innovation. Community. Security.