stil4m/elm-syntax/7.3.9

Elm.Syntax.Pattern

This syntax represents the patterns. For example:

Just x as someMaybe
{name, age}

Types

type Pattern
= AllPattern
| UnitPattern
| CharPattern Char
| StringPattern String
| IntPattern Int
| HexPattern Int
| FloatPattern Float
| TuplePattern (List (Node Pattern))
| RecordPattern (List (Node String))
| UnConsPattern (Node Pattern) (Node Pattern)
| ListPattern (List (Node Pattern))
| VarPattern String
| NamedPattern QualifiedNameRef (List (Node Pattern))
| AsPattern (Node Pattern) (Node String)
| ParenthesizedPattern (Node Pattern)

Custom type for all patterns such as:

  • AllPattern: _
  • UnitPattern: ()
  • CharPattern: 'c'
  • StringPattern: "hello"
  • IntPattern: 42
  • HexPattern: 0x11
  • FloatPattern: 42.0
  • TuplePattern: (a, b)
  • RecordPattern: {name, age}
  • UnConsPattern: x :: xs
  • ListPattern: [ x, y ]
  • VarPattern: x
  • NamedPattern: Just _
  • AsPattern: _ as x
  • ParenthesizedPattern: ( _ )
type alias QualifiedNameRef =
{ moduleName : List String
, name : String
}

Qualified name reference such as Maybe.Just.

Functions

moduleNames : Pattern -> List ModuleName

Get all the modules names that are used in the pattern (and its nested patterns). Use this to collect qualified patterns, such as Maybe.Just x.

Serialization

encode : Pattern -> Value

Encode a Pattern syntax element to JSON.

decoder : Decoder Pattern

JSON decoder for a Pattern syntax element.