[Haskell-cafe] Anonymous, Unique Types, maybe
Scott Lawrence
bytbox at gmail.com
Sun Dec 4 06:53:00 CET 2011
(Sorry if this email is rather unclear - I know my desired end result,
but neither how to acheive nor explain it well. Here goes.)
I'm processing lists, using them sortof as streams. (Whether that's a
good idea isn't the issue here - but let me know if it isn't!)
Fundamentally, there are two types of operations (at least, that are
relevant here) - those that change the length of the list and those that
don't.
Some operators might take more than one list/stream as an argument,
combining them in some way or another. Obviously, if the lists were
different lengths, the operator would fail. I don't want that to happen
at run time, so I want to check for it statically, presumably via the
type system. I could do this manually:
type AList = [Event]
type BList = [Event]
type CList = [Event]
myMapish :: AList -> AList
mySelect :: AList -> (Event -> Bool) -> BList
myOtherSelect :: BList -> CList
but I'd rather not have to manually define a new type for every new list
length:
myMapish :: List a -> List a
mySelect :: List a -> List ?
The '?' would be an anonymous, unique type - unless there's a better way
to accomplish this.
Hope that was clear, and thanks (as always) for the help (and being
awesome).
--
Scott Lawrence
More information about the Haskell-Cafe
mailing list