You can get pretty far with the same trick oleg mentions at [1].
If you use local type signature then you can do things like this:
{- ghci infers this type: *Main> :t f f :: (Ord a) => Int -> a -> t -> String -} f i j x | False = (undefined (i::Int) (isOrd j)) :: String f i j x = error "not filled in" isOrd :: Ord a => a -> () isOrd = undefined
Cheers, Chris [1] http://okmij.org/ftp/Haskell/types.html#partial-sigs _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe