Re: [Haskell-cafe] Type checking of partial programs

2008-03-23 Thread ac
So a number of people responded with various ways this is already possible. Of course GHC can already do this... it's type inference. The part I'm interested in working on is exposing the functionality in GHC's API to make this as easy as possible. -Abram _

Re: [Haskell-cafe] Type checking of partial programs

2008-03-21 Thread Henning Thielemann
On Thu, 20 Mar 2008, Roberto Zunino wrote: ac wrote: foo :: [Foo] -> foo xs = map xs What are the possible type signatures for placeholder 1 and the possible expressions for placeholder 2? A nice GHCi trick I learned from #haskell: :t let foo xs = map ?placeholder2 xs in foo forall a

Re: [Haskell-cafe] Type checking of partial programs

2008-03-20 Thread Ryan Ingram
You can transform this into valid Haskell98 in the following way: foo_infer xs _ | const False (xs :: [Foo]) = undefined foo_infer xs placeholder_2 = map ph xs foo xs = foo_infer xs undefined You can then do type inference on "foo_infer", giving you foo_infer :: [Foo] -> (Foo -> a) -> [a] whic

Re: [Haskell-cafe] Type checking of partial programs

2008-03-20 Thread Don Stewart
zunino: > ac wrote: > > foo :: [Foo] -> > > foo xs = map xs > > > > What are the possible type signatures for placeholder 1 and the possible > > expressions for placeholder 2? > > A nice GHCi trick I learned from #haskell: > > > :t let foo xs = map ?placeholder2 xs in foo > > forall a b. (?

Re: [Haskell-cafe] Type checking of partial programs

2008-03-20 Thread Roberto Zunino
ac wrote: > foo :: [Foo] -> > foo xs = map xs > > What are the possible type signatures for placeholder 1 and the possible > expressions for placeholder 2? A nice GHCi trick I learned from #haskell: > :t let foo xs = map ?placeholder2 xs in foo forall a b. (?placeholder2::a -> b) => [a] ->

[Haskell-cafe] Type checking of partial programs

2008-03-20 Thread ac
Is anybody interested in working on this? This is a project I've been interested in for some time, but recognize I probably need some guidance before I go off and start hacking on it. As dcoutts pointed out on #haskell-soc, this may be of particular interest to people working on yi and HaRe. Other