Rasgo de la mónada en Scala

(¿Cómo) es posible representar mónadas en Scala de una manera genérica (como laMonad Typeclass en Haskell)? ¿Es posible de alguna manera definir unatrait Monad ¿para este propósito?