stil4m / elm-syntax / Elm.Syntax.Module

This syntax represents module definitions in Elm. For example:

module Html.Attributes exposing (style)

Module


type Module
    = NormalModule DefaultModuleData
    | PortModule DefaultModuleData
    | EffectModule EffectModuleData

Union type for different kind of modules


type alias DefaultModuleData =
{ moduleName : Elm.Syntax.Node.Node Elm.Syntax.ModuleName.ModuleName
, exposingList : Elm.Syntax.Node.Node Elm.Syntax.Exposing.Exposing 
}

Data for a default default


type alias EffectModuleData =
{ moduleName : Elm.Syntax.Node.Node Elm.Syntax.ModuleName.ModuleName
, exposingList : Elm.Syntax.Node.Node Elm.Syntax.Exposing.Exposing
, command : Maybe (Elm.Syntax.Node.Node String)
, subscription : Maybe (Elm.Syntax.Node.Node String) 
}

Data for an effect module

exposingList : Module -> Elm.Syntax.Exposing.Exposing

Get the exposing list for a module.

moduleName : Module -> Elm.Syntax.ModuleName.ModuleName

Get the name for a module. For older modules this may not be present.

isPortModule : Module -> Basics.Bool

Check whether a module is defined as a port-module

isEffectModule : Module -> Basics.Bool

Check whether a module is defined as an effect-module

Serialization

encode : Module -> Json.Encode.Value

Encode a Module syntax element to JSON.

decoder : Json.Decode.Decoder Module

JSON decoder for a Module syntax element.