Renamed `basic_group<T>::op` to `oper` for consistency with Haskell & Python