parenKeysEvent ::
    (MonadReader env m, Has Dir.Layout env) => m ([Lens.ALens' env Text] -> o a -> EventMap (o a))
parenKeysEvent =
    Lens.view id <&>
    \env texts act ->
    let parenKeys =
            case env ^. has of
            Dir.LeftToRight -> "(["
            Dir.RightToLeft -> ")]"
    in
    E.charGroup (Just "Open Paren")
    (E.toDoc env texts) parenKeys (const act)
parenKeysEvent ::
    (MonadReader env m, Has Dir.Layout env) => m ([Lens.ALens' env Text] -> o a -> EventMap (o a))
parenKeysEvent =
    Lens.view id <&>
    \env texts act ->
    let parenKeys =
            case env ^. has of
            Dir.LeftToRight -> "(["
            Dir.RightToLeft -> ")]"
    in
    E.charGroup (Just "Open Paren")
    (E.toDoc env texts) parenKeys (const act)
parenKeysEvent =
    Lens.view id <&>
    \env texts act ->
    let parenKeys =
            case env ^. has of
            Dir.LeftToRight -> "(["
            Dir.RightToLeft -> ")]"
    in
    E.charGroup (Just "Open Paren")
    (E.toDoc env texts) parenKeys (const act)