monadicThe s (x:xs)
  | all (x ==) xs = return x
  | otherwise = fail s
monadicThe s (x:xs)
  | all (x ==) xs = return x
  | otherwise = fail s
monadicThe s (x:xs)
  | all (x ==) xs = return x
  | otherwise = fail s