On Sat, 8 Jan 2011, Roman Cheplyaka wrote: > I think catMaybes deserves its own typeclass, which would represent > "truncatable" structures: > > class Truncatable struct where > catMaybes :: struct (Maybe a) -> Maybe a But catMaybes has the type catMaybes :: struct (Maybe a) -> struct a for struct = []