mdgriffith / elm-codegen / Elm.Op

This module helps generate operators!

So, this

Elm.Op.equal (Elm.bool True) (Elm.bool False)

Would generate

True == False

Equality

equal : Elm.Expression -> Elm.Expression -> Elm.Expression

==

notEqual : Elm.Expression -> Elm.Expression -> Elm.Expression

/=

and : Elm.Expression -> Elm.Expression -> Elm.Expression

&&

or : Elm.Expression -> Elm.Expression -> Elm.Expression

||

Lists and strings

append : Elm.Expression -> Elm.Expression -> Elm.Expression

++

cons : Elm.Expression -> Elm.Expression -> Elm.Expression

::

Math

plus : Elm.Expression -> Elm.Expression -> Elm.Expression

+

minus : Elm.Expression -> Elm.Expression -> Elm.Expression

-

multiply : Elm.Expression -> Elm.Expression -> Elm.Expression

*

divide : Elm.Expression -> Elm.Expression -> Elm.Expression

/

intDivide : Elm.Expression -> Elm.Expression -> Elm.Expression

//

power : Elm.Expression -> Elm.Expression -> Elm.Expression

The to-the-power-of operator ^

Comparisons

lt : Elm.Expression -> Elm.Expression -> Elm.Expression

<

gt : Elm.Expression -> Elm.Expression -> Elm.Expression

>

lte : Elm.Expression -> Elm.Expression -> Elm.Expression

<=

gte : Elm.Expression -> Elm.Expression -> Elm.Expression

>=

pipe : Elm.Expression -> Elm.Expression -> Elm.Expression

|>

Elm.value "thang"
    |> Elm.Op.pipe (Elm.value "thang2")
    |> Elm.Op.pipe (Elm.value "thang3")

Results in

thang
    |> thang2
    |> thang3

parens : Elm.Expression -> Elm.Expression

Wrap an expression in parentheses.

Generally you won't need this as elm-codegen handles parens for you, but it can be useful to semantically group operations from this module.

Parsing

keep : Elm.Expression -> Elm.Expression -> Elm.Expression

used in the elm/parser library

|=

skip : Elm.Expression -> Elm.Expression -> Elm.Expression

|.

Url parsing

slash : Elm.Expression -> Elm.Expression -> Elm.Expression

</> used in url parsing

query : Elm.Expression -> Elm.Expression -> Elm.Expression

<?> used in url parsing