style
provide parse_gy
error monad