0 | module Lana.Name
 1 |
 2 | public export
 3 | record Name where
 4 |   constructor MkName
 5 |   nameQualification : Maybe String
 6 |   nameUnqualified : String
 7 |
 8 | export
 9 | unqualifiedName : String -> Name
10 | unqualifiedName n =
11 |   MkName
12 |     { nameQualification = Nothing
13 |     , nameUnqualified = n
14 |     }
15 |
16 | export
17 | annotateName : Name -> String -> Name
18 | annotateName name annotation =
19 |   { nameUnqualified := nameUnqualified name <+> " " <+> annotation
20 |   } name
21 |
22 | export
23 | nameToString : Name -> String
24 | nameToString name =
25 |   case nameQualification name of
26 |     Just q => q <+> "." <+> nameUnqualified name
27 |     Nothing => nameUnqualified name
28 |