span, break can be used in MIDI.Read for searchNoteOff, moveTempoToHead Haddock documentation for functions monotony check on AbsoluteEventList length take, drop, splitAt takeTime, dropTime, splitAtTime There are too many variants, e.g. with respect to inclusion and exclusion of the pivot element. I do not know, which ones are needed, and how to name them. I'll wait for the first usage. They should be somehow consistent with takeWhile, dropWhile, span Relative.TimeMixed: better names for appendBodyEnd prependBodyEnd !! can be done with getBodies, getTimes segmentBefore, segmentAfter AlternatingList's laziness should be more fine-grained. The underlying list-of-pair structure still leaks. You can observe it when applying 'mapInit' functions. == done == zipWith distinction between AbsoluteList and RelativeList with a newtype? seems to be sensible but requires more wrapping Shall we only wrap the 'time' value? This way we could share types between modules. This way we could not simply define an Arbitrary instance for Absolute EventLists.