よくわからんが
data D a = mkD (a -> [a])
instance Monad D where ...
ってことか?
あとmapFってなんだ?fmap?