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