[Haskell-cafe] Missing a "Deriving"?

David Menendez dave at zednenem.com
Sat May 30 21:33:11 EDT 2009


On Sat, May 30, 2009 at 9:00 PM, michael rice <nowgate at yahoo.com> wrote:
> That works. but it gives just a single solution [1,2,3] when there are
> supposed to be two [[1,2,3],[1,4,3]]. Of course the code in YAHT may be in
> error.

Works for me.

*Main> searchAll g 1 3 :: [[Int]]
[[1,2,3],[1,4,3]]
*Main> searchAll g 1 3 :: Maybe [Int]
Just [1,2,3]
*Main> searchAll g 1 3 :: Failable [Int]
Success [1,2,3]


> Also, how the heck does Haskell decide which "success", "failure",
> "augment", and "combine" to use in function "searchAll", since there are
> five possibilities.

*Main> :t searchAll
searchAll :: (Computation c) => Graph t t1 -> Int -> Int -> c [Int]

The way searchAll is written, the choice of which functions to use
depends on the type variable c. That's determined by the calling
context of searchAll, which is why you need to provide a type
signature when using it at the GHCi command line.

-- 
Dave Menendez <dave at zednenem.com>
<http://www.eyrie.org/~zednenem/>


More information about the Haskell-Cafe mailing list