{-# LANGUAGE GADTs #-} module GhcTags.CTag.Utils ( tagKindToChar , charToTagKind ) where import GhcTags.Tag tagKindToChar :: CTagKind -> Maybe Char tagKindToChar :: CTagKind -> Maybe Char tagKindToChar CTagKind tk = case CTagKind tk of CTagKind TkTerm -> Char -> Maybe Char forall a. a -> Maybe a Just Char '`' CTagKind TkFunction -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'λ' CTagKind TkTypeConstructor -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'Λ' CTagKind TkDataConstructor -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'c' CTagKind TkGADTConstructor -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'g' CTagKind TkRecordField -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'r' CTagKind TkTypeSynonym -> Char -> Maybe Char forall a. a -> Maybe a Just Char '≡' CTagKind TkTypeSignature -> Char -> Maybe Char forall a. a -> Maybe a Just Char '⊢' CTagKind TkPatternSynonym -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'p' CTagKind TkTypeClass -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'C' CTagKind TkTypeClassMember -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'm' CTagKind TkTypeClassInstance -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'i' CTagKind TkTypeFamily -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'f' CTagKind TkTypeFamilyInstance -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'F' CTagKind TkDataTypeFamily -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'd' CTagKind TkDataTypeFamilyInstance -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'D' CTagKind TkForeignImport -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'I' CTagKind TkForeignExport -> Char -> Maybe Char forall a. a -> Maybe a Just Char 'E' CharKind Char c -> Char -> Maybe Char forall a. a -> Maybe a Just Char c CTagKind NoKind -> Maybe Char forall a. Maybe a Nothing charToTagKind :: Char -> CTagKind charToTagKind :: Char -> CTagKind charToTagKind Char c = case Char c of Char '`' -> CTagKind TkTerm Char 'λ' -> CTagKind TkFunction Char 'Λ' -> CTagKind TkTypeConstructor Char 'c' -> CTagKind TkDataConstructor Char 'g' -> CTagKind TkGADTConstructor Char 'r' -> CTagKind TkRecordField Char '≡' -> CTagKind TkTypeSynonym Char '⊢' -> CTagKind TkTypeSignature Char 'p' -> CTagKind TkPatternSynonym Char 'C' -> CTagKind TkTypeClass Char 'm' -> CTagKind TkTypeClassMember Char 'i' -> CTagKind TkTypeClassInstance Char 'f' -> CTagKind TkTypeFamily Char 'F' -> CTagKind TkTypeFamilyInstance Char 'd' -> CTagKind TkDataTypeFamily Char 'D' -> CTagKind TkDataTypeFamilyInstance Char 'I' -> CTagKind TkForeignImport Char 'E' -> CTagKind TkForeignExport Char _ -> Char -> CTagKind CharKind Char c