finos / morphir-elm / Morphir.IR.QName

Module to work with qualified names. A qualified name is a combination of a module path and a local name.


type QName
    = QName Morphir.IR.Path.Path Morphir.IR.Name.Name

Type that represents a qualified name.

toTuple : QName -> ( Morphir.IR.Path.Path, Morphir.IR.Name.Name )

Turn a qualified name into a tuple.

getModulePath : QName -> Morphir.IR.Path.Path

Get the module path part of a qualified name.

getLocalName : QName -> Morphir.IR.Name.Name

Get the local name part of a qualified name.

Creation

fromName : Morphir.IR.Path.Path -> Morphir.IR.Name.Name -> QName

Creates a qualified name.

fromTuple : ( Morphir.IR.Path.Path, Morphir.IR.Name.Name ) -> QName

Turn a tuple into a qualified name.

String conversion

fromString : String -> Maybe QName

Parse a string into a QName using : as the separator between module and local names.

toString : QName -> String

Turn a QName into a string using : as the separator between module and local names.

qname =
    QName.fromTuple
        (Path.fromList
            [ Name.fromList [ "foo", "bar" ]
            , Name.fromList [ "baz" ]
            ]
        , Name.fromList [ "a", "name" ]
        )

toString qname
--> "FooBar.Baz:aName"