package ppx_deriving_madcast

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Main access point

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

exception NoCastFound

Exception raised when no cast can be derived for two types

exception SeveralCastsFound

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

Lower-level access points

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.

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

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