Warry/elm-stuff/1.0.0

ElmStuff.Optimized

Types

type Global
= Global PackageCanonical Name
type Expr
= ExprBool Bool
| ExprChr String
| ExprStr String
| ExprInt Int
| ExprFloat Float
| ExprVarLocal Name
| ExprVarGlobal Global
| ExprVarEnum Global ZeroBased
| ExprVarBox Global
| ExprVarCycle PackageCanonical Name
| ExprVarDebug Name PackageCanonical Region (Maybe Name)
| ExprVarKernel Name Name
| ExprList (List Expr)
| ExprFunction (List Name) Expr
| ExprCall Expr (List Expr)
| ExprTailCall Name (List ( Name, Expr ))
| ExprIf (List ( Expr, Expr )) Expr
| ExprLet Def Expr
| ExprDestruct Destructor Expr
| ExprCase Name Name Decider (List ( Int, Expr ))
| ExprAccessor Name
| ExprAccess Expr Name
| ExprUpdate Expr (Dict Name Expr)
| ExprRecord (Dict Name Expr)
| ExprUnit
| ExprTuple Expr Expr (Maybe Expr)
| ExprShader String (List Name) (List Name)
= Position Word16 Word16
type Region
= Region Position Position
type Def
= Def Name Expr
| TailDef Name (List Name) Expr
= Destructor Name Path
type Path
= Index ZeroBased Path
| Field Name Path
| Unbox Path
| Root Name
type Decider
= Leaf Choice
| Chain
{ testChain : List ( DecisionTreePath, Test )
, success : Decider
, failure : Decider
}
| FanOut
, tests : List ( Test, Decider )
, fallback : Decider
}
type Choice
= Inline Expr
| Jump Int
type Main
= Static
| Dynamic
{ message : Type
, decoder : Expr
}
type Node
= Define Expr (List Global)
| DefineTailFunc (List Name) Expr (List Global)
| Ctor ZeroBased Int
| Enum ZeroBased
| Box
| Link Global
| Cycle
(List Name)
(List ( Name, Expr ))
(List Def)
(List Global)
| Manager EffectsType
| Kernel (List Chunk) (List Global)
| PortIncoming Expr (List Global)
| PortOutgoing Expr (List Global)
= Cmd
| Sub
| Fx
type Chunk
= JS String
| ElmVar Canonical Name
| JsVar Name Name
| ElmField Name
| JsField Int
| JsEnum Int
| Debug_
| Prod
type Test
= IsCtor Canonical Name ZeroBased Int CtorOpts
| IsCons
| IsNil
| IsTuple
| IsInt Int
| IsChr String
| IsStr String
| IsBool Bool
= DTIndex ZeroBased DecisionTreePath
| DTUnbox DecisionTreePath
| DTEmpty
type alias Artifacts =
{ ifaces : Dict Name DependencyInterface
, objects : GlobalGraph
}
type alias GlobalGraph =
{ g_nodes : Dict Global Node
, g_fields : Dict Name Int
}
type alias LocalGraph =
{ l_main : Maybe Main
, l_nodes : Dict Global Node
, l_fields : Dict Name Int
}

Decoders

binArtifacts : Decoder Artifacts
binGlobal : Decoder Global
binExpr : Decoder Expr
binRegion : Decoder Region
binDef : Decoder Def
binPath : Decoder Path
binChoice : Decoder Choice
binGlobalGraph : Decoder GlobalGraph
binLocalGraph : Decoder LocalGraph
binMain : Decoder Main
binNode : Decoder Node
binChunk : Decoder Chunk
binTest : Decoder Test