
If I understand you correctly you seem to want dependent types, this
article uses the same example you need, promoting the length of a
vector/list to the type level:
https://www.fpcomplete.com/user/konn/prove-your-haskell-for-great-safety/dep...
You'd end up with `plot :: (Vector n Double -> Double) -> Vector n (Double,
Double) -> IO ()' where `n' is the length of the vector.
HTH,
Adam
On Wed, Mar 11, 2015 at 10:45 PM, Sumit Sahrawat, Maths & Computing, IIT
(BHU)
Hi everybody,
I have a function of type
plot :: ([Double] -> Double) -- A function to plot -> [(Double, Double)] -- Range for all arguments -> IO ()
I want to enforce the fact that ranges for all arguments should be provided. Is there a way to make the type system enforce it?
-- Regards
Sumit Sahrawat
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe