packages feed

descript-lang-0.2.0.0: test-resources/examples/Import.ModFunc.Workaround.dscr

//Uses the same exact function (`Square`) with 2 different definitions
//of an inner function (`Mult`), without using import parameters.
module Examples>Import
import Import>Math>Square{Mult, Square}
import Import>Math>Vector{Vec3, Dot, Cross}

SqDot[a].
SqCross[a].
MultWrap[val, func].
MultDot[].
MultCross[].

Res[dotProduct, crossProduct].
VecA[].

SqDot[a]: Square[MultWrap[a, func: MultDot[]]]
SqCross[a]: Square[MultWrap[a, func: MultCross[]]]

Mult[
  left: MultWrap[val, func: MultDot[]]
  right: MultWrap[val, func: MultDot[]]
]: Dot[left>val, right>val]
Mult[
  left: MultWrap[val, func: MultCross[]]
  right: MultWrap[val, func: MultCross[]]
]: Cross[left>val, right>val]

VecA[]: Vec3[x: 5, y: 4, z: 10]

Res[
  dotProduct: SqDot[VecA[]]
  crossProduct: SqCross[VecA[]]
]?