module Data.Char.Properties.BidiBrackets where
data Type = O | C
paired :: Char -> Maybe (Char, Type)
paired = \ case
    '(' -> Just (')', O)
    ')' -> Just ('(', C)
    '[' -> Just (']', O)
    ']' -> Just ('[', C)
    '{' -> Just ('}', O)
    '}' -> Just ('{', C)
    '\3898' -> Just ('\3899', O)
    '\3899' -> Just ('\3898', C)
    '\3900' -> Just ('\3901', O)
    '\3901' -> Just ('\3900', C)
    '\5787' -> Just ('\5788', O)
    '\5788' -> Just ('\5787', C)
    '\8261' -> Just ('\8262', O)
    '\8262' -> Just ('\8261', C)
    '\8317' -> Just ('\8318', O)
    '\8318' -> Just ('\8317', C)
    '\8333' -> Just ('\8334', O)
    '\8334' -> Just ('\8333', C)
    '\8968' -> Just ('\8969', O)
    '\8969' -> Just ('\8968', C)
    '\8970' -> Just ('\8971', O)
    '\8971' -> Just ('\8970', C)
    '\9001' -> Just ('\9002', O)
    '\9002' -> Just ('\9001', C)
    '\10088' -> Just ('\10089', O)
    '\10089' -> Just ('\10088', C)
    '\10090' -> Just ('\10091', O)
    '\10091' -> Just ('\10090', C)
    '\10092' -> Just ('\10093', O)
    '\10093' -> Just ('\10092', C)
    '\10094' -> Just ('\10095', O)
    '\10095' -> Just ('\10094', C)
    '\10096' -> Just ('\10097', O)
    '\10097' -> Just ('\10096', C)
    '\10098' -> Just ('\10099', O)
    '\10099' -> Just ('\10098', C)
    '\10100' -> Just ('\10101', O)
    '\10101' -> Just ('\10100', C)
    '\10181' -> Just ('\10182', O)
    '\10182' -> Just ('\10181', C)
    '\10214' -> Just ('\10215', O)
    '\10215' -> Just ('\10214', C)
    '\10216' -> Just ('\10217', O)
    '\10217' -> Just ('\10216', C)
    '\10218' -> Just ('\10219', O)
    '\10219' -> Just ('\10218', C)
    '\10220' -> Just ('\10221', O)
    '\10221' -> Just ('\10220', C)
    '\10222' -> Just ('\10223', O)
    '\10223' -> Just ('\10222', C)
    '\10627' -> Just ('\10628', O)
    '\10628' -> Just ('\10627', C)
    '\10629' -> Just ('\10630', O)
    '\10630' -> Just ('\10629', C)
    '\10631' -> Just ('\10632', O)
    '\10632' -> Just ('\10631', C)
    '\10633' -> Just ('\10634', O)
    '\10634' -> Just ('\10633', C)
    '\10635' -> Just ('\10636', O)
    '\10636' -> Just ('\10635', C)
    '\10637' -> Just ('\10640', O)
    '\10638' -> Just ('\10639', C)
    '\10639' -> Just ('\10638', O)
    '\10640' -> Just ('\10637', C)
    '\10641' -> Just ('\10642', O)
    '\10642' -> Just ('\10641', C)
    '\10643' -> Just ('\10644', O)
    '\10644' -> Just ('\10643', C)
    '\10645' -> Just ('\10646', O)
    '\10646' -> Just ('\10645', C)
    '\10647' -> Just ('\10648', O)
    '\10648' -> Just ('\10647', C)
    '\10712' -> Just ('\10713', O)
    '\10713' -> Just ('\10712', C)
    '\10714' -> Just ('\10715', O)
    '\10715' -> Just ('\10714', C)
    '\10748' -> Just ('\10749', O)
    '\10749' -> Just ('\10748', C)
    '\11810' -> Just ('\11811', O)
    '\11811' -> Just ('\11810', C)
    '\11812' -> Just ('\11813', O)
    '\11813' -> Just ('\11812', C)
    '\11814' -> Just ('\11815', O)
    '\11815' -> Just ('\11814', C)
    '\11816' -> Just ('\11817', O)
    '\11817' -> Just ('\11816', C)
    '\12296' -> Just ('\12297', O)
    '\12297' -> Just ('\12296', C)
    '\12298' -> Just ('\12299', O)
    '\12299' -> Just ('\12298', C)
    '\12300' -> Just ('\12301', O)
    '\12301' -> Just ('\12300', C)
    '\12302' -> Just ('\12303', O)
    '\12303' -> Just ('\12302', C)
    '\12304' -> Just ('\12305', O)
    '\12305' -> Just ('\12304', C)
    '\12308' -> Just ('\12309', O)
    '\12309' -> Just ('\12308', C)
    '\12310' -> Just ('\12311', O)
    '\12311' -> Just ('\12310', C)
    '\12312' -> Just ('\12313', O)
    '\12313' -> Just ('\12312', C)
    '\12314' -> Just ('\12315', O)
    '\12315' -> Just ('\12314', C)
    '\65113' -> Just ('\65114', O)
    '\65114' -> Just ('\65113', C)
    '\65115' -> Just ('\65116', O)
    '\65116' -> Just ('\65115', C)
    '\65117' -> Just ('\65118', O)
    '\65118' -> Just ('\65117', C)
    '\65288' -> Just ('\65289', O)
    '\65289' -> Just ('\65288', C)
    '\65339' -> Just ('\65341', O)
    '\65341' -> Just ('\65339', C)
    '\65371' -> Just ('\65373', O)
    '\65373' -> Just ('\65371', C)
    '\65375' -> Just ('\65376', O)
    '\65376' -> Just ('\65375', C)
    '\65378' -> Just ('\65379', O)
    '\65379' -> Just ('\65378', C)
    _ -> Nothing