[Haskell-cafe] Anonymous, Unique Types, maybe

Steffen Schuldenzucker sschuldenzucker at uni-bonn.de
Sun Dec 4 13:14:12 CET 2011


On 12/04/2011 06:53 AM, Scott Lawrence wrote:
> [...]
> 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
 > [...]

Just as a small side note, with the 'type' keyword, AList, BList, CList 
will /not/ be seen as separate types (but they're all the same type, 
namely [Event]).
If you want separate types, you would use a newtype wrapper like

newtype AList = AList [Event]
     deriving (some instances you want to derive from [Event])

-- Steffen



More information about the Haskell-Cafe mailing list