## Haskell, 54 bytes t a=or$map(\f->and(f(zipWith(<=))tail$a))[(=<<),(<*>)] Usage example: `t "defggh"` -> `True`. [Try it online!](https://tio.run/nexus/haskell#BcExDoAgDADArzSEoTX6A@AbDurQBIEmgoR08vN4NxXYv8NW7nimLXCLmPCTvosWdJ5IWR7LRAd652hFtwS6ZmVp4KEPaQoWFEy8U87FwPwB "Haskell – TIO Nexus"). Maybe using `sort` like may other answers is shorter although it requires `import Data.List`. Here's a different approach: Map the lambda `\f-> ...` over the list of functions `[(=<<),(<*>)]` and require any of the results to be `True`. The lambda resolves to ((=<<) (zipWith(<=)) tail) a ((<*>) (zipWith(<=)) tail) a which both perform comparisons of neighbor elements of the input list `a` with `<=`, but one with the arguments flipped resulting in a `>=`. `and` checks if all comparisons are `True`.