This module is for building let
expressions.
letIn : a -> Let a
value : String -> Elm.Expression -> Let (Elm.Expression -> a) -> Let a
tuple : String -> String -> Elm.Expression -> Let (( Elm.Expression, Elm.Expression ) -> a) -> Let a
triple : String -> String -> String -> Elm.Expression -> Let (( Elm.Expression, Elm.Expression, Elm.Expression ) -> a) -> Let a
record : List String -> Elm.Expression -> Let (List Elm.Expression -> a) -> Let a
Here's an example of declaring functions in a let expression:
Elm.Let.letIn
(\myFn ->
myFn (Elm.bool True)
)
|> Elm.Let.fn "myFn"
( "arg", Just Type.bool )
(\arg ->
Elm.ifThen arg
(Elm.string "True")
(Elm.string "False")
)
|> Elm.Let.toExpression
will generate
let
myFn arg =
if arg then
"True"
else
"False"
in
myFn True
fn : String -> ( String, Maybe Elm.Annotation.Annotation ) -> (Elm.Expression -> Elm.Expression) -> Let ((Elm.Expression -> Elm.Expression) -> a) -> Let a
fn2 : String -> ( String, Maybe Elm.Annotation.Annotation ) -> ( String, Maybe Elm.Annotation.Annotation ) -> (Elm.Expression -> Elm.Expression -> Elm.Expression) -> Let ((Elm.Expression -> Elm.Expression -> Elm.Expression) -> a) -> Let a
fn3 : String -> ( String, Maybe Elm.Annotation.Annotation ) -> ( String, Maybe Elm.Annotation.Annotation ) -> ( String, Maybe Elm.Annotation.Annotation ) -> (Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression) -> Let ((Elm.Expression -> Elm.Expression -> Elm.Expression -> Elm.Expression) -> a) -> Let a
toExpression : Let Elm.Expression -> Elm.Expression