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