switching to preprocessor for monadplus stuff