foo :: (Char -> a /\ Bool -> b) -> (a,b)
a.k.a. find some value that matches both Char->a and Bool->b for some a and b. Could use type-classes to do it.
Uhmm... you mean something like (neglecting TC-related issues here)
class C a b where
fromChar :: Char -> a
fromBool :: Bool -> b
Oops: i meant something like
class C x a b | x -> a,b where
fromChar :: x -> Char -> a
fromBool :: x -> Bool -> b
no... let me figure out what I meant. Just somehow to have a single
function that takes an argument of two different types without
completely ignoring it.
class Arg a where
whatYouPass :: a -> Something
instance Arg Char where
whatYouPass = ...
instance Arg Bool where
whatYouPass = ...
Then (foo whatYouPass) :: (Something, Something).
Or if it was
class Arg a where
whatYouPass :: a -> a
then (foo whatYouPass) :: (Char, Bool).
And I'm sure there are ways to make the return type different if you
want to think about FDs etc.
Zun.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe