{-# 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 -> forall a. a -> Maybe a Just Char 'M' TagKind TkTerm -> forall a. a -> Maybe a Just Char '`' TagKind TkFunction -> forall a. a -> Maybe a Just Char 'λ' TagKind TkTypeConstructor -> forall a. a -> Maybe a Just Char 'Λ' TagKind TkDataConstructor -> forall a. a -> Maybe a Just Char 'c' TagKind TkGADTConstructor -> forall a. a -> Maybe a Just Char 'g' TagKind TkRecordField -> forall a. a -> Maybe a Just Char 'r' TagKind TkTypeSynonym -> forall a. a -> Maybe a Just Char '≡' TagKind TkTypeSignature -> forall a. a -> Maybe a Just Char '⊢' TagKind TkPatternSynonym -> forall a. a -> Maybe a Just Char 'p' TagKind TkTypeClass -> forall a. a -> Maybe a Just Char 'C' TagKind TkTypeClassMember -> forall a. a -> Maybe a Just Char 'm' TagKind TkTypeClassInstance -> forall a. a -> Maybe a Just Char 'i' TagKind TkTypeClassInstanceMember -> forall a. a -> Maybe a Just Char 'x' TagKind TkTypeFamily -> forall a. a -> Maybe a Just Char 'f' TagKind TkTypeFamilyInstance -> forall a. a -> Maybe a Just Char 'F' TagKind TkDataTypeFamily -> forall a. a -> Maybe a Just Char 'd' TagKind TkDataTypeFamilyInstance -> forall a. a -> Maybe a Just Char 'D' TagKind TkForeignImport -> forall a. a -> Maybe a Just Char 'I' TagKind TkForeignExport -> forall a. a -> Maybe a Just Char 'E' CharKind Char c -> forall a. a -> Maybe a Just Char c TagKind NoKind -> 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