Module Data.Function.Inversion

This module provides some utility functions for inverting functions.

Author: Michael Hanus

Version: November 2020

Summary of exported operations:

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

Exported operations:

invf1 :: (Data a, Data b) => (a -> b) -> b -> a   

Inverts a unary function.

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

Inverts a binary function.

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

Inverts a ternary function.

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

Inverts a function of arity 4.

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

Inverts a function of arity 5.