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/dependent-types-in-haskellYou'd end up with `plot :: (Vector n Double -> Double) -> Vector n (Double, Double) -> IO ()' where `n' is the length of the vector.HTH,AdamOn Wed, Mar 11, 2015 at 10:45 PM, Sumit Sahrawat, Maths & Computing, IIT (BHU) <sumit.sahrawat.apm13@iitbhu.ac.in> wrote:_______________________________________________Hi everybody,I have a function of typeplot :: ([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?--RegardsSumit Sahrawat
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe