[Haskell-cafe] Converting Types to Terms
Klaus Ostermann
ostermann at informatik.tu-darmstadt.de
Sun Jan 28 15:11:33 EST 2007
I would like to have a program that can synthesize programs for a
given type, composing only functions from a given library.
For example, suppose my library has
isZero :: Int -> Bool
map :: (a -> b) -> [a] -> [b]
and :: Bool -> Bool -> Bool
fold :: (a -> b -> a) -> a -> [b] -> a
True :: Bool
(.) :: (b -> c) -> (a -> b) -> a -> c
then I want to ask, say, for a program of type
[Int] -> Bool
and get as answer
(fold and True) . (map isZero)
I have found two approaches in this direction. The first one
is the De-Typechecker
http://www.haskell.org/pipermail/haskell/2005-March/015423.html
and the other one is Djinn
http://permalink.gmane.org/gmane.comp.lang.haskell.general/12747
However, with none of these approaches I managed to do anything with list
functions.
What else is available (besides Djinn and De-Typechecker)? Are lists a problem?
In general, what are the practical and theoretical limits of these program
synthesizers? Are there any overview papers for this topic?
Regards,
Klaus
More information about the Haskell-Cafe
mailing list