It is possible to go part of the way.  See for example, the NonEmpty type in the semigroups package.  It is a list that always has at least one element by restricting the operations you can do to the type without turning it into a normal list.  You could easily adapt that solution to a sixteen element list, but it might not be a reasonable amount of trouble to go through.

On Tue, Mar 17, 2015 at 1:26 PM, Kelong Cong <kelongcong@gmail.com> wrote:
Hello,

I have a function that takes a list as its parameter. The list must always have the same length, for example 16. Instead of producing a "Nothing" or bottom out when an invalid list is supplied, are there ways to verify this at compile time? If not, are there alternative data types that has this kind of functionality?

Thanks,
Kelong


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners