Morgan-Stanley / 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

toString : (Morphir.IR.Name.Name -> String) -> (Morphir.IR.Name.Name -> String) -> String -> QName -> String

Turn a qualified name into a string using the specified path and name conventions.

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

toString Name.toTitleCase Name.toCamelCase "." qname
--> "FooBar.Baz.aName"

toString Name.toSnakeCase Name.toSnakeCase "/" qname
--> "foo_bar/baz/a_name"