Datatype def + several combinators