Module FunctionInversion

This module provides some utility functions for inverting functions.

Author: Michael Hanus

Version: February 2015

Summary of exported operations:

invf1 :: (a -> b) -> b -> a   
Inverts a unary function.
invf2 :: (a -> b -> c) -> c -> (a,b)   
Inverts a binary function.
invf3 :: (a -> b -> c -> d) -> d -> (a,b,c)   
Inverts a ternary function.
invf4 :: (a -> b -> c -> d -> e) -> e -> (a,b,c,d)   
Inverts a function of arity 4.
invf5 :: (a -> b -> c -> d -> e -> f) -> f -> (a,b,c,d,e)   
Inverts a function of arity 5.

Exported operations:

invf1 :: (a -> b) -> b -> a   

Inverts a unary function.

invf2 :: (a -> b -> c) -> c -> (a,b)   

Inverts a binary function.

invf3 :: (a -> b -> c -> d) -> d -> (a,b,c)   

Inverts a ternary function.

invf4 :: (a -> b -> c -> d -> e) -> e -> (a,b,c,d)   

Inverts a function of arity 4.

invf5 :: (a -> b -> c -> d -> e -> f) -> f -> (a,b,c,d,e)   

Inverts a function of arity 5.