├── .github └── workflows │ ├── ci.yml │ └── pages.yml ├── .gitignore ├── .travis.yml ├── .travis ├── attach-binary.sh ├── install-ghr.sh └── install-stack.sh ├── LICENSE ├── README.md ├── Setup.hs ├── ad_rev.html ├── cabal.project ├── classes ├── LICENSE ├── Setup.hs ├── concat-classes.cabal └── src │ └── ConCat │ ├── Additive.hs │ ├── AltCat.hs │ ├── Category.hs │ ├── Experimental │ ├── A.hs │ ├── B.hs │ ├── C.hs │ ├── D.hs │ ├── E.hs │ └── F.hs │ ├── MinMax.hs │ ├── Misc.hs │ ├── Oops.hs │ ├── Ops.inc │ ├── Orphans.hs │ ├── Pointed.hs │ ├── Rep.hs │ └── Zip.hs ├── examples ├── LICENSE ├── Setup.hs ├── app │ └── ad_rev.lhs ├── concat-examples.cabal ├── out │ └── Makefile ├── src │ └── ConCat │ │ ├── AD.hs │ │ ├── ADFun.hs │ │ ├── AbsTy.inc │ │ ├── AdditiveFun.hs │ │ ├── Arr.hs │ │ ├── Chain.hs │ │ ├── Choice.hs │ │ ├── Circuit.hs │ │ ├── Complex.hs │ │ ├── Continuation.hs │ │ ├── Deep.hs │ │ ├── Demand.hs │ │ ├── Distribution.hs │ │ ├── Dual.hs │ │ ├── DualAdditive.hs │ │ ├── FFT.hs │ │ ├── Finite.hs │ │ ├── Free │ │ ├── Affine.hs │ │ ├── CoercibleBug.hs │ │ ├── Diagonal.hs │ │ ├── LinearCol.hs │ │ ├── LinearRow.hs │ │ └── VectorSpace.hs │ │ ├── GAD.hs │ │ ├── GradientDescent.hs │ │ ├── Gui.hs │ │ ├── Incremental.hs │ │ ├── Interval.hs │ │ ├── Isomorphism.hs │ │ ├── KnownNatOps.hs │ │ ├── LC.hs │ │ ├── Local.hs │ │ ├── Nat.hs │ │ ├── NatArr.hs │ │ ├── Pair.hs │ │ ├── Polynomial.hs │ │ ├── RAD.hs │ │ ├── Regress.hs │ │ ├── RegressChoice.hs │ │ ├── RunCircuit.hs │ │ ├── SMT.hs │ │ ├── Scan.hs │ │ ├── Shaped.hs │ │ ├── Sized.hs │ │ ├── StackT.hs │ │ ├── StackVM.hs │ │ ├── Standardize.hs │ │ ├── Synchronous.hs │ │ ├── Syntactic.hs │ │ └── TArr.hs └── test │ ├── gold │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ └── maximum-gradr.golden │ └── testHasFins.hs ├── flake.lock ├── flake.nix ├── garnix.yaml ├── graphics ├── LICENSE ├── README.md ├── Setup.hs ├── concat-graphics.cabal ├── out │ └── shaders │ │ ├── script.js │ │ └── style.css ├── src │ └── ConCat │ │ └── Graphics │ │ ├── Color.hs │ │ ├── GLSL.hs │ │ └── Image.hs ├── test │ └── Examples.hs └── todo.md ├── hardware ├── LICENSE ├── README.md ├── Setup.hs ├── concat-hardware.cabal ├── src │ └── ConCat │ │ └── Hardware │ │ └── Verilog.hs └── test │ ├── Examples.hs │ ├── cmplx.v │ ├── fft_fc_rb3_tb.v │ └── trig.v ├── hie.yaml ├── inline ├── Setup.hs ├── concat-inline.cabal └── src │ └── ConCat │ └── Inline │ ├── ClassOp.hs │ ├── Plugin.hs │ └── SampleMethods.hs ├── known ├── Setup.hs ├── concat-known.cabal └── src │ └── ConCat │ └── Known.hs ├── nix ├── lib.nix └── netlist-overlay.nix ├── other ├── header.md ├── lhs.css ├── proofs.md └── template.html ├── plugin ├── LICENSE ├── Setup.hs ├── concat-plugin.cabal ├── src │ ├── ConCat.hs │ └── ConCat │ │ ├── NormaliseType.hs │ │ ├── OkType.hs │ │ ├── Plugin.hs │ │ ├── Rebox.hs │ │ └── Translators.hs └── test │ ├── BasicTests.hs │ ├── Examples.hs │ ├── GoldTests.hs │ ├── Miscellany.hs │ ├── Utils.hs │ └── gold │ ├── 9.0.2 │ ├── add-adf-dot.golden │ ├── add-adf-syn.golden │ ├── add-adr-dot.golden │ ├── add-adr-syn.golden │ ├── add-dot.golden │ ├── add-gradr-dot.golden │ ├── add-gradr-syn.golden │ ├── add-syn.golden │ ├── add-uncurry-dot.golden │ ├── add-uncurry-syn.golden │ ├── complex-mul-dot.golden │ ├── complex-mul-syn.golden │ ├── cos-2x-adf-dot.golden │ ├── cos-2x-adf-syn.golden │ ├── cos-2x-adr-dot.golden │ ├── cos-2x-adr-syn.golden │ ├── cos-2x-gradr-dot.golden │ ├── cos-2x-gradr-syn.golden │ ├── cos-2xx-adf-dot.golden │ ├── cos-2xx-adf-syn.golden │ ├── cos-2xx-adr-dot.golden │ ├── cos-2xx-adr-syn.golden │ ├── cos-2xx-dot.golden │ ├── cos-2xx-gradr-dot.golden │ ├── cos-2xx-gradr-syn.golden │ ├── cos-2xx-syn.golden │ ├── cos-adf-dot.golden │ ├── cos-adf-syn.golden │ ├── cos-adr-dot.golden │ ├── cos-adr-syn.golden │ ├── cos-gradr-dot.golden │ ├── cos-gradr-syn.golden │ ├── cos-xpy-adf-dot.golden │ ├── cos-xpy-adf-syn.golden │ ├── cos-xpy-adr-dot.golden │ ├── cos-xpy-adr-syn.golden │ ├── cos-xpy-gradr-dot.golden │ ├── cos-xpy-gradr-syn.golden │ ├── cosSinProd-dot.golden │ ├── cosSinProd-syn.golden │ ├── dup-dot.golden │ ├── dup-syn.golden │ ├── fst-dot.golden │ ├── fst-syn.golden │ ├── horner-dot.golden │ ├── horner-syn.golden │ ├── log-2xx-dot.golden │ ├── log-2xx-syn.golden │ ├── magSqr-adf-dot.golden │ ├── magSqr-adf-syn.golden │ ├── magSqr-adr-dot.golden │ ├── magSqr-adr-syn.golden │ ├── magSqr-dot.golden │ ├── magSqr-gradr-dot.golden │ ├── magSqr-gradr-syn.golden │ ├── magSqr-syn.golden │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ ├── maximum-gradr.golden │ ├── sin-adf-dot.golden │ ├── sin-adf-syn.golden │ ├── sin-adr-dot.golden │ ├── sin-adr-syn.golden │ ├── sin-gradr-dot.golden │ ├── sin-gradr-syn.golden │ ├── sqr-adf-dot.golden │ ├── sqr-adf-syn.golden │ ├── sqr-adr-dot.golden │ ├── sqr-adr-syn.golden │ ├── sqr-dot.golden │ ├── sqr-gradr-dot.golden │ ├── sqr-gradr-syn.golden │ ├── sqr-syn.golden │ ├── twice-adf-dot.golden │ ├── twice-adf-syn.golden │ ├── twice-adr-dot.golden │ ├── twice-adr-syn.golden │ ├── twice-dot.golden │ ├── twice-gradr-dot.golden │ ├── twice-gradr-syn.golden │ ├── twice-syn.golden │ ├── xp3y-dot.golden │ └── xp3y-syn.golden │ ├── 9.2.1 │ ├── add-adf-dot.golden │ ├── add-adf-syn.golden │ ├── add-adr-dot.golden │ ├── add-adr-syn.golden │ ├── add-dot.golden │ ├── add-gradr-dot.golden │ ├── add-gradr-syn.golden │ ├── add-syn.golden │ ├── add-uncurry-dot.golden │ ├── add-uncurry-syn.golden │ ├── complex-mul-dot.golden │ ├── complex-mul-syn.golden │ ├── cos-2x-adf-dot.golden │ ├── cos-2x-adf-syn.golden │ ├── cos-2x-adr-dot.golden │ ├── cos-2x-adr-syn.golden │ ├── cos-2x-gradr-dot.golden │ ├── cos-2x-gradr-syn.golden │ ├── cos-2xx-adf-dot.golden │ ├── cos-2xx-adf-syn.golden │ ├── cos-2xx-adr-dot.golden │ ├── cos-2xx-adr-syn.golden │ ├── cos-2xx-dot.golden │ ├── cos-2xx-gradr-dot.golden │ ├── cos-2xx-gradr-syn.golden │ ├── cos-2xx-syn.golden │ ├── cos-adf-dot.golden │ ├── cos-adf-syn.golden │ ├── cos-adr-dot.golden │ ├── cos-adr-syn.golden │ ├── cos-gradr-dot.golden │ ├── cos-gradr-syn.golden │ ├── cos-xpy-adf-dot.golden │ ├── cos-xpy-adf-syn.golden │ ├── cos-xpy-adr-dot.golden │ ├── cos-xpy-adr-syn.golden │ ├── cos-xpy-gradr-dot.golden │ ├── cos-xpy-gradr-syn.golden │ ├── cosSinProd-dot.golden │ ├── cosSinProd-syn.golden │ ├── dup-dot.golden │ ├── dup-syn.golden │ ├── fst-dot.golden │ ├── fst-syn.golden │ ├── horner-dot.golden │ ├── horner-syn.golden │ ├── log-2xx-dot.golden │ ├── log-2xx-syn.golden │ ├── magSqr-adf-dot.golden │ ├── magSqr-adf-syn.golden │ ├── magSqr-adr-dot.golden │ ├── magSqr-adr-syn.golden │ ├── magSqr-dot.golden │ ├── magSqr-gradr-dot.golden │ ├── magSqr-gradr-syn.golden │ ├── magSqr-syn.golden │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ ├── maximum-gradr.golden │ ├── sin-adf-dot.golden │ ├── sin-adf-syn.golden │ ├── sin-adr-dot.golden │ ├── sin-adr-syn.golden │ ├── sin-gradr-dot.golden │ ├── sin-gradr-syn.golden │ ├── sqr-adf-dot.golden │ ├── sqr-adf-syn.golden │ ├── sqr-adr-dot.golden │ ├── sqr-adr-syn.golden │ ├── sqr-dot.golden │ ├── sqr-gradr-dot.golden │ ├── sqr-gradr-syn.golden │ ├── sqr-syn.golden │ ├── twice-adf-dot.golden │ ├── twice-adf-syn.golden │ ├── twice-adr-dot.golden │ ├── twice-adr-syn.golden │ ├── twice-dot.golden │ ├── twice-gradr-dot.golden │ ├── twice-gradr-syn.golden │ ├── twice-syn.golden │ ├── xp3y-dot.golden │ └── xp3y-syn.golden │ ├── 9.2.2 │ ├── add-adf-dot.golden │ ├── add-adf-syn.golden │ ├── add-adr-dot.golden │ ├── add-adr-syn.golden │ ├── add-dot.golden │ ├── add-gradr-dot.golden │ ├── add-gradr-syn.golden │ ├── add-syn.golden │ ├── add-uncurry-dot.golden │ ├── add-uncurry-syn.golden │ ├── complex-mul-dot.golden │ ├── complex-mul-syn.golden │ ├── cos-2x-adf-dot.golden │ ├── cos-2x-adf-syn.golden │ ├── cos-2x-adr-dot.golden │ ├── cos-2x-adr-syn.golden │ ├── cos-2x-gradr-dot.golden │ ├── cos-2x-gradr-syn.golden │ ├── cos-2xx-adf-dot.golden │ ├── cos-2xx-adf-syn.golden │ ├── cos-2xx-adr-dot.golden │ ├── cos-2xx-adr-syn.golden │ ├── cos-2xx-dot.golden │ ├── cos-2xx-gradr-dot.golden │ ├── cos-2xx-gradr-syn.golden │ ├── cos-2xx-syn.golden │ ├── cos-adf-dot.golden │ ├── cos-adf-syn.golden │ ├── cos-adr-dot.golden │ ├── cos-adr-syn.golden │ ├── cos-gradr-dot.golden │ ├── cos-gradr-syn.golden │ ├── cos-xpy-adf-dot.golden │ ├── cos-xpy-adf-syn.golden │ ├── cos-xpy-adr-dot.golden │ ├── cos-xpy-adr-syn.golden │ ├── cos-xpy-gradr-dot.golden │ ├── cos-xpy-gradr-syn.golden │ ├── cosSinProd-dot.golden │ ├── cosSinProd-syn.golden │ ├── dup-dot.golden │ ├── dup-syn.golden │ ├── fst-dot.golden │ ├── fst-syn.golden │ ├── horner-dot.golden │ ├── horner-syn.golden │ ├── log-2xx-dot.golden │ ├── log-2xx-syn.golden │ ├── magSqr-adf-dot.golden │ ├── magSqr-adf-syn.golden │ ├── magSqr-adr-dot.golden │ ├── magSqr-adr-syn.golden │ ├── magSqr-dot.golden │ ├── magSqr-gradr-dot.golden │ ├── magSqr-gradr-syn.golden │ ├── magSqr-syn.golden │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ ├── maximum-gradr.golden │ ├── sin-adf-dot.golden │ ├── sin-adf-syn.golden │ ├── sin-adr-dot.golden │ ├── sin-adr-syn.golden │ ├── sin-gradr-dot.golden │ ├── sin-gradr-syn.golden │ ├── sqr-adf-dot.golden │ ├── sqr-adf-syn.golden │ ├── sqr-adr-dot.golden │ ├── sqr-adr-syn.golden │ ├── sqr-dot.golden │ ├── sqr-gradr-dot.golden │ ├── sqr-gradr-syn.golden │ ├── sqr-syn.golden │ ├── twice-adf-dot.golden │ ├── twice-adf-syn.golden │ ├── twice-adr-dot.golden │ ├── twice-adr-syn.golden │ ├── twice-dot.golden │ ├── twice-gradr-dot.golden │ ├── twice-gradr-syn.golden │ ├── twice-syn.golden │ ├── xp3y-dot.golden │ └── xp3y-syn.golden │ ├── 9.2.8 │ ├── add-adf-dot.golden │ ├── add-adf-syn.golden │ ├── add-adr-dot.golden │ ├── add-adr-syn.golden │ ├── add-dot.golden │ ├── add-gradr-dot.golden │ ├── add-gradr-syn.golden │ ├── add-syn.golden │ ├── add-uncurry-dot.golden │ ├── add-uncurry-syn.golden │ ├── complex-mul-dot.golden │ ├── complex-mul-syn.golden │ ├── cos-2x-adf-dot.golden │ ├── cos-2x-adf-syn.golden │ ├── cos-2x-adr-dot.golden │ ├── cos-2x-adr-syn.golden │ ├── cos-2x-gradr-dot.golden │ ├── cos-2x-gradr-syn.golden │ ├── cos-2xx-adf-dot.golden │ ├── cos-2xx-adf-syn.golden │ ├── cos-2xx-adr-dot.golden │ ├── cos-2xx-adr-syn.golden │ ├── cos-2xx-dot.golden │ ├── cos-2xx-gradr-dot.golden │ ├── cos-2xx-gradr-syn.golden │ ├── cos-2xx-syn.golden │ ├── cos-adf-dot.golden │ ├── cos-adf-syn.golden │ ├── cos-adr-dot.golden │ ├── cos-adr-syn.golden │ ├── cos-gradr-dot.golden │ ├── cos-gradr-syn.golden │ ├── cos-xpy-adf-dot.golden │ ├── cos-xpy-adf-syn.golden │ ├── cos-xpy-adr-dot.golden │ ├── cos-xpy-adr-syn.golden │ ├── cos-xpy-gradr-dot.golden │ ├── cos-xpy-gradr-syn.golden │ ├── cosSinProd-dot.golden │ ├── cosSinProd-syn.golden │ ├── dup-dot.golden │ ├── dup-syn.golden │ ├── fst-dot.golden │ ├── fst-syn.golden │ ├── horner-dot.golden │ ├── horner-syn.golden │ ├── log-2xx-dot.golden │ ├── log-2xx-syn.golden │ ├── magSqr-adf-dot.golden │ ├── magSqr-adf-syn.golden │ ├── magSqr-adr-dot.golden │ ├── magSqr-adr-syn.golden │ ├── magSqr-dot.golden │ ├── magSqr-gradr-dot.golden │ ├── magSqr-gradr-syn.golden │ ├── magSqr-syn.golden │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ ├── maximum-gradr.golden │ ├── sin-adf-dot.golden │ ├── sin-adf-syn.golden │ ├── sin-adr-dot.golden │ ├── sin-adr-syn.golden │ ├── sin-gradr-dot.golden │ ├── sin-gradr-syn.golden │ ├── sqr-adf-dot.golden │ ├── sqr-adf-syn.golden │ ├── sqr-adr-dot.golden │ ├── sqr-adr-syn.golden │ ├── sqr-dot.golden │ ├── sqr-gradr-dot.golden │ ├── sqr-gradr-syn.golden │ ├── sqr-syn.golden │ ├── twice-adf-dot.golden │ ├── twice-adf-syn.golden │ ├── twice-adr-dot.golden │ ├── twice-adr-syn.golden │ ├── twice-dot.golden │ ├── twice-gradr-dot.golden │ ├── twice-gradr-syn.golden │ ├── twice-syn.golden │ ├── xp3y-dot.golden │ └── xp3y-syn.golden │ ├── 9.4.1 │ ├── add-adf-dot.golden │ ├── add-adf-syn.golden │ ├── add-adr-dot.golden │ ├── add-adr-syn.golden │ ├── add-dot.golden │ ├── add-gradr-dot.golden │ ├── add-gradr-syn.golden │ ├── add-syn.golden │ ├── add-uncurry-dot.golden │ ├── add-uncurry-syn.golden │ ├── complex-mul-dot.golden │ ├── complex-mul-syn.golden │ ├── cos-2x-adf-dot.golden │ ├── cos-2x-adf-syn.golden │ ├── cos-2x-adr-dot.golden │ ├── cos-2x-adr-syn.golden │ ├── cos-2x-gradr-dot.golden │ ├── cos-2x-gradr-syn.golden │ ├── cos-2xx-adf-dot.golden │ ├── cos-2xx-adf-syn.golden │ ├── cos-2xx-adr-dot.golden │ ├── cos-2xx-adr-syn.golden │ ├── cos-2xx-dot.golden │ ├── cos-2xx-gradr-dot.golden │ ├── cos-2xx-gradr-syn.golden │ ├── cos-2xx-syn.golden │ ├── cos-adf-dot.golden │ ├── cos-adf-syn.golden │ ├── cos-adr-dot.golden │ ├── cos-adr-syn.golden │ ├── cos-gradr-dot.golden │ ├── cos-gradr-syn.golden │ ├── cos-xpy-adf-dot.golden │ ├── cos-xpy-adf-syn.golden │ ├── cos-xpy-adr-dot.golden │ ├── cos-xpy-adr-syn.golden │ ├── cos-xpy-gradr-dot.golden │ ├── cos-xpy-gradr-syn.golden │ ├── cosSinProd-dot.golden │ ├── cosSinProd-syn.golden │ ├── dup-dot.golden │ ├── dup-syn.golden │ ├── fst-dot.golden │ ├── fst-syn.golden │ ├── horner-dot.golden │ ├── horner-syn.golden │ ├── log-2xx-dot.golden │ ├── log-2xx-syn.golden │ ├── magSqr-adf-dot.golden │ ├── magSqr-adf-syn.golden │ ├── magSqr-adr-dot.golden │ ├── magSqr-adr-syn.golden │ ├── magSqr-dot.golden │ ├── magSqr-gradr-dot.golden │ ├── magSqr-gradr-syn.golden │ ├── magSqr-syn.golden │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ ├── maximum-gradr.golden │ ├── sin-adf-dot.golden │ ├── sin-adf-syn.golden │ ├── sin-adr-dot.golden │ ├── sin-adr-syn.golden │ ├── sin-gradr-dot.golden │ ├── sin-gradr-syn.golden │ ├── sqr-adf-dot.golden │ ├── sqr-adf-syn.golden │ ├── sqr-adr-dot.golden │ ├── sqr-adr-syn.golden │ ├── sqr-dot.golden │ ├── sqr-gradr-dot.golden │ ├── sqr-gradr-syn.golden │ ├── sqr-syn.golden │ ├── twice-adf-dot.golden │ ├── twice-adf-syn.golden │ ├── twice-adr-dot.golden │ ├── twice-adr-syn.golden │ ├── twice-dot.golden │ ├── twice-gradr-dot.golden │ ├── twice-gradr-syn.golden │ ├── twice-syn.golden │ ├── xp3y-dot.golden │ └── xp3y-syn.golden │ ├── 9.4.8 │ ├── add-adf-dot.golden │ ├── add-adf-syn.golden │ ├── add-adr-dot.golden │ ├── add-adr-syn.golden │ ├── add-dot.golden │ ├── add-gradr-dot.golden │ ├── add-gradr-syn.golden │ ├── add-syn.golden │ ├── add-uncurry-dot.golden │ ├── add-uncurry-syn.golden │ ├── complex-mul-dot.golden │ ├── complex-mul-syn.golden │ ├── cos-2x-adf-dot.golden │ ├── cos-2x-adf-syn.golden │ ├── cos-2x-adr-dot.golden │ ├── cos-2x-adr-syn.golden │ ├── cos-2x-gradr-dot.golden │ ├── cos-2x-gradr-syn.golden │ ├── cos-2xx-adf-dot.golden │ ├── cos-2xx-adf-syn.golden │ ├── cos-2xx-adr-dot.golden │ ├── cos-2xx-adr-syn.golden │ ├── cos-2xx-dot.golden │ ├── cos-2xx-gradr-dot.golden │ ├── cos-2xx-gradr-syn.golden │ ├── cos-2xx-syn.golden │ ├── cos-adf-dot.golden │ ├── cos-adf-syn.golden │ ├── cos-adr-dot.golden │ ├── cos-adr-syn.golden │ ├── cos-gradr-dot.golden │ ├── cos-gradr-syn.golden │ ├── cos-xpy-adf-dot.golden │ ├── cos-xpy-adf-syn.golden │ ├── cos-xpy-adr-dot.golden │ ├── cos-xpy-adr-syn.golden │ ├── cos-xpy-gradr-dot.golden │ ├── cos-xpy-gradr-syn.golden │ ├── cosSinProd-dot.golden │ ├── cosSinProd-syn.golden │ ├── dup-dot.golden │ ├── dup-syn.golden │ ├── fst-dot.golden │ ├── fst-syn.golden │ ├── horner-dot.golden │ ├── horner-syn.golden │ ├── log-2xx-dot.golden │ ├── log-2xx-syn.golden │ ├── magSqr-adf-dot.golden │ ├── magSqr-adf-syn.golden │ ├── magSqr-adr-dot.golden │ ├── magSqr-adr-syn.golden │ ├── magSqr-dot.golden │ ├── magSqr-gradr-dot.golden │ ├── magSqr-gradr-syn.golden │ ├── magSqr-syn.golden │ ├── maximum-derf.golden │ ├── maximum-derr.golden │ ├── maximum-gradr.golden │ ├── sin-adf-dot.golden │ ├── sin-adf-syn.golden │ ├── sin-adr-dot.golden │ ├── sin-adr-syn.golden │ ├── sin-gradr-dot.golden │ ├── sin-gradr-syn.golden │ ├── sqr-adf-dot.golden │ ├── sqr-adf-syn.golden │ ├── sqr-adr-dot.golden │ ├── sqr-adr-syn.golden │ ├── sqr-dot.golden │ ├── sqr-gradr-dot.golden │ ├── sqr-gradr-syn.golden │ ├── sqr-syn.golden │ ├── twice-adf-dot.golden │ ├── twice-adf-syn.golden │ ├── twice-adr-dot.golden │ ├── twice-adr-syn.golden │ ├── twice-dot.golden │ ├── twice-gradr-dot.golden │ ├── twice-gradr-syn.golden │ ├── twice-syn.golden │ ├── xp3y-dot.golden │ └── xp3y-syn.golden │ └── Makefile ├── sandbox ├── LICENSE ├── Setup.hs ├── concat-sandbox.cabal └── test │ ├── natnorm.hs │ ├── partial.hs │ ├── so_BoolHasFin.hs │ └── so_natnorm.hs ├── satisfy ├── Setup.hs ├── concat-satisfy.cabal └── src │ └── ConCat │ ├── BuildDictionary.hs │ ├── Satisfy.hs │ ├── Satisfy │ └── Plugin.hs │ └── Simplify.hs ├── stack.yaml └── todo.md /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: concat 2 | on: 3 | push: 4 | branches: 5 | - master 6 | pull_request: 7 | types: 8 | - opened 9 | - synchronize 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | strategy: 14 | fail-fast: false 15 | matrix: 16 | ghc: 17 | - "9.0.1" 18 | - "9.2.1" 19 | - "9.2.2" # has breaking changes relative to 9.2.1 20 | - "9.4.1" 21 | steps: 22 | - uses: actions/checkout@v2 23 | - uses: haskell/actions/setup@v1 24 | id: setup-haskell-cabal 25 | with: 26 | ghc-version: ${{ matrix.ghc }} 27 | cabal-version: "3.6.0.0" 28 | - run: cabal v2-update 29 | - run: cabal v2-freeze $CONFIG 30 | - uses: actions/cache@v2 31 | with: 32 | path: | 33 | ${{ steps.setup-haskell-cabal.outputs.cabal-store }} 34 | dist-newstyle 35 | key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} 36 | - run: cabal new-build all 37 | - run: cabal new-test gold-tests 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | !.travis* 2 | *.stackwork 3 | *out/ 4 | *.tmp 5 | *.swp 6 | *.hi 7 | *.o 8 | *.pdf 9 | o[1-9]* 10 | *~ 11 | dist-newstyle/ 12 | -------------------------------------------------------------------------------- /.travis/attach-binary.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -o errexit -o verbose 3 | 4 | if test ! "$BUILD_BINARY" || test ! "$TRAVIS_TAG" 5 | then 6 | echo 'This is not a release build.' 7 | elif test ! "$GITHUB_TOKEN" 8 | then 9 | echo 'The GITHUB_TOKEN environment variable is not set!' 10 | exit 1 11 | else 12 | echo "Building binary for $TRAVIS_OS_NAME to $TRAVIS_TAG..." 13 | stack build --ghc-options -O2 --pedantic 14 | echo "Attaching binary for $TRAVIS_OS_NAME to $TRAVIS_TAG..." 15 | OWNER="$(echo "$TRAVIS_REPO_SLUG" | cut -f1 -d/)" 16 | REPO="$(echo "$TRAVIS_REPO_SLUG" | cut -f2 -d/)" 17 | BIN="$(stack path --local-install-root)/bin/$REPO" 18 | BUNDLE_NAME="$REPO-$TRAVIS_TAG-$TRAVIS_OS_NAME.tar.gz" 19 | cp "$BIN" "./$REPO" 20 | chmod +x "./$REPO" 21 | tar -czf "$BUNDLE_NAME" "$REPO" 22 | echo "SHA256:" 23 | shasum -a 256 "$BUNDLE_NAME" 24 | ghr -t "$GITHUB_TOKEN" -u "$OWNER" -r "$REPO" --replace "$(git describe --tags)" "$BUNDLE_NAME" 25 | fi 26 | -------------------------------------------------------------------------------- /.travis/install-ghr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -o errexit -o verbose 3 | 4 | if test ! "$BUILD_BINARY" || test ! "$TRAVIS_TAG" 5 | then 6 | echo 'This is not a release build.' 7 | else 8 | if [ "$TRAVIS_OS_NAME" = "linux" ] 9 | then 10 | ARCH="linux" 11 | else 12 | ARCH="darwin" 13 | fi 14 | echo "Installing ghr" 15 | URL="https://github.com/tcnksm/ghr/releases/download/v0.5.4/ghr_v0.5.4_${ARCH}_386.zip" 16 | curl -L ${URL} > ghr.zip 17 | mkdir -p "$HOME/bin" 18 | export PATH="$HOME/bin:$PATH" 19 | unzip ghr.zip -d "$HOME/bin" 20 | rm ghr.zip 21 | fi 22 | -------------------------------------------------------------------------------- /.travis/install-stack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Adapted from https://github.com/commercialhaskell/stack 4 | 5 | set -eux 6 | 7 | travis_retry() { 8 | cmd=$* 9 | $cmd || (sleep 2 && $cmd) || (sleep 10 && $cmd) 10 | } 11 | 12 | fetch_stack_osx() { 13 | curl -skL https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin; 14 | } 15 | 16 | fetch_stack_linux() { 17 | curl -sL https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'; 18 | } 19 | 20 | # We need stack to generate cabal files with precise bounds, even for cabal 21 | # builds. 22 | mkdir -p ~/.local/bin; 23 | if [ "$(uname)" = "Darwin" ]; then 24 | travis_retry fetch_stack_osx 25 | else 26 | travis_retry fetch_stack_linux 27 | fi 28 | 29 | travis_retry stack --no-terminal setup; 30 | -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /cabal.project: -------------------------------------------------------------------------------- 1 | source-repository-package 2 | type: git 3 | location: https://github.com/ku-fpg/netlist.git 4 | tag: master 5 | subdir: netlist 6 | 7 | source-repository-package 8 | type: git 9 | location: https://github.com/ku-fpg/netlist.git 10 | tag: master 11 | subdir: netlist-to-verilog 12 | 13 | source-repository-package 14 | type: git 15 | location: https://github.com/ku-fpg/netlist.git 16 | tag: master 17 | subdir: verilog 18 | 19 | packages: 20 | ./inline/concat-inline.cabal 21 | ./plugin/concat-plugin.cabal 22 | ./classes/concat-classes.cabal 23 | ./satisfy/concat-satisfy.cabal 24 | ./known/concat-known.cabal 25 | 26 | ./hardware/concat-hardware.cabal 27 | ./graphics/concat-graphics.cabal 28 | ./examples/concat-examples.cabal 29 | documentation: False 30 | -------------------------------------------------------------------------------- /classes/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /classes/src/ConCat/MinMax.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE MultiParamTypeClasses #-} 2 | {-# LANGUAGE DataKinds #-} 3 | {-# LANGUAGE FlexibleInstances #-} 4 | {-# LANGUAGE TypeOperators #-} 5 | {-# LANGUAGE TypeFamilies #-} 6 | {-# OPTIONS_GHC -Wall #-} 7 | 8 | -- | Typeclass for mimimum and maximum on functors 9 | -- use with 10 | -- import Prelude hiding (minimum, maximum) 11 | 12 | module ConCat.MinMax(MinMax(..), MinMaxRep(..)) where 13 | 14 | import Prelude hiding (minimum, maximum) 15 | import GHC.TypeLits 16 | import qualified Data.Vector as DataVector 17 | import Data.Vector.Generic.Sized as Vector 18 | import qualified Data.Vector.Generic as VectorGeneric 19 | import Data.Functor.Rep (Representable(..)) 20 | 21 | class Ord a => MinMax f a where 22 | minimum :: f a -> a 23 | maximum :: f a -> a 24 | 25 | instance (VectorGeneric.Vector v a, Ord a, n ~ (m + 1)) => MinMax (Vector v n) a where 26 | minimum = Vector.minimum 27 | maximum = Vector.maximum 28 | 29 | class (Ord a, Representable f) => MinMaxRep f a where 30 | minimumRep :: f a -> (Rep f, a) 31 | maximumRep :: f a -> (Rep f, a) 32 | 33 | instance (Ord a, KnownNat n, n ~ (m + 1)) => MinMaxRep (Vector DataVector.Vector n) a where 34 | minimumRep v = 35 | let i = Vector.minIndex v 36 | in (i, Vector.index v i) 37 | maximumRep v = 38 | let i = Vector.maxIndex v 39 | in (i, Vector.index v i) 40 | 41 | -------------------------------------------------------------------------------- /classes/src/ConCat/Oops.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -O0 -fno-strictness #-} 2 | module ConCat.Oops(oops) where 3 | 4 | -- Both -O0 -fno-strictness are necessary to keep ghc 9 from 5 | -- discovering that this bombs. 6 | 7 | -- | Pseudo function to fool GHC's divergence checker. 8 | oops :: String -> b 9 | oops str = error ("Oops: "++str) 10 | {-# NOINLINE oops #-} 11 | 12 | -------------------------------------------------------------------------------- /classes/src/ConCat/Pointed.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -Wall #-} 2 | 3 | -- | Aliases for pointed functors, as the ones in Data.Pointed inline too early 4 | module ConCat.Pointed (Pointed, point) where 5 | 6 | import qualified Data.Pointed as Pointed 7 | import Data.Pointed (Pointed) 8 | 9 | point :: Pointed p => a -> p a 10 | point = Pointed.point 11 | {-# INLINE [0] point #-} 12 | -------------------------------------------------------------------------------- /classes/src/ConCat/Zip.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -Wall #-} 2 | 3 | -- | Aliases for zippable functors, as the ones in Key.Zip inline too early 4 | module ConCat.Zip(Zip, zipWith, zip, zap) where 5 | 6 | -- use with 7 | -- import Prelude hiding (zipWith, zip) 8 | 9 | import Prelude hiding (zipWith, zip) 10 | import qualified Data.Key as Key 11 | import Data.Key (Zip) 12 | 13 | zipWith :: Zip f => (a -> b -> c) -> f a -> f b -> f c 14 | zipWith = Key.zipWith 15 | {-# INLINE [0] zipWith #-} 16 | 17 | zip :: Zip f => f a -> f b -> f (a, b) 18 | zip = Key.zip 19 | {-# INLINE [0] zip #-} 20 | 21 | zap :: Zip f => f (a -> b) -> f a -> f b 22 | zap = Key.zap 23 | {-# INLINE [0] zap #-} 24 | -------------------------------------------------------------------------------- /examples/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /examples/out/Makefile: -------------------------------------------------------------------------------- 1 | 2 | %.pdf: %.dot Makefile 3 | dot -Tpdf -Gmargin=0 -Gsize=10,10 $< -o $@ 4 | 5 | # Remove page dimensions to make the results self-scaling 6 | %.svg: %.dot # Makefile 7 | dot -Tsvg $< | sed -e 's/ $@ 8 | 9 | %.png: %.dot 10 | dot -Gdpi=200 -Tpng $< -o $@ 11 | 12 | %.see: % 13 | open $< 14 | 15 | FigSuperDir=/Users/conal/Journals/Current/wikidata/$(shell date "+%Y")/Figures 16 | FigDir=$(FigSuperDir)/$(shell date "+%m-%d") 17 | 18 | $(FigDir): 19 | mkdir -p $@ 20 | 21 | $(FigDir)/%.svg: %.dot Makefile $(FigDir) 22 | dot -Tsvg $< | sed -e 's/ $@ 23 | 24 | %.fig: $(FigDir)/%.svg 25 | @ 26 | 27 | .PRECIOUS: %.pdf $(FigDir)/%.svg 28 | 29 | -------------------------------------------------------------------------------- /examples/src/ConCat/AbsTy.inc: -------------------------------------------------------------------------------- 1 | -- Macro to declare various class instances for types with HasRep instances. To 2 | -- use this macro with your own types, use the AbsTyPragmas macro in your 3 | -- language pragmas section and AbsTyImports in your imports section. 4 | 5 | #define AbsTy(abs) \ 6 | instance (OkCAR (abs)) => GenBuses (abs) where \ 7 | { genBuses' = genBusesRep' {- ; delay = delayCRep -} ; ty = tyRep @(abs) ; unflattenB' = genUnflattenB' }; \ 8 | instance (OkCAR (abs), ConCat.Category.IfCat (:>) (Rep (abs))) => ConCat.Category.IfCat (:>) (abs) where \ 9 | { ifC = repIf @(:>) @(abs) @(Rep(abs)) }; \ 10 | -- instance ({-OkCAR (abs), -} GenBuses z, GenBuses (Rep (abs)), ConCat.Category.BottomCat (:>) z (Rep (abs))) => ConCat.Category.BottomCat (:>) z (abs) where \ 11 | -- { bottomC = bottomRep }; 12 | 13 | -- \ 14 | -- instance Uncurriable k _a_ (abs) where uncurries f = f ; {-# INLINE uncurries #-} 15 | 16 | -- See 2016-01-13 notes on "bottom evaluated" 17 | -- instance (OkCAR (abs), ConstCat (:>) (Rep (abs))) => ConstCat (:>) (abs) where \ 18 | -- { const = repConst } ; \ 19 | 20 | #define AbsTyPragmas \ 21 | {-# LANGUAGE MultiParamTypeClasses, UndecidableInstances, FlexibleInstances, TypeApplications #-} 22 | 23 | #define AbsTyImports \ 24 | import qualified ConCat.Category ;\ 25 | import ConCat.AltCat (repIf) ;\ 26 | import ConCat.Circuit (GenBuses(..){-,delayCRep-},tyRep,genBusesRep',genUnflattenB',(:>),OkCAR); 27 | 28 | -- ,bottomRep 29 | 30 | -- import ConCat.AltCat (BottomCat(..),IfCat(..),repIf,Uncurriable(..)) ;\ 31 | 32 | -------------------------------------------------------------------------------- /examples/src/ConCat/KnownNatOps.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE DataKinds, FlexibleInstances, GADTs, KindSignatures, 2 | MultiParamTypeClasses, ScopedTypeVariables, 3 | TypeApplications, TypeFamilies, TypeOperators, 4 | UndecidableInstances, 5 | CPP #-} 6 | 7 | {-# OPTIONS_GHC -Wall #-} 8 | {-# OPTIONS_GHC -Wno-orphans #-} 9 | 10 | -- | Some type families to be used with GHC.KnownNat.Solver 11 | 12 | module ConCat.KnownNatOps where 13 | 14 | import GHC.TypeLits 15 | import GHC.TypeLits.KnownNat 16 | import Data.Proxy 17 | 18 | -- When the plugin works with GHC 8.4 (base 4.11.0.0), get Div and Mod from 19 | -- GHC.TypeNat instead of declaring here. 20 | type family Div (m :: Nat) (n :: Nat) :: Nat 21 | type family Mod (m :: Nat) (n :: Nat) :: Nat 22 | 23 | instance (KnownNat a, KnownNat b) => KnownNat2 "Div" a b where 24 | natSing2 = SNatKn $ fromIntegral $ (div (natVal (Proxy :: Proxy a)) (natVal (Proxy :: Proxy b))) 25 | {-# INLINE natSing2 #-} 26 | 27 | instance (KnownNat a, KnownNat b) => KnownNat2 "Mod" a b where 28 | natSing2 = SNatKn $ fromIntegral $ (mod (natVal (Proxy :: Proxy a)) (natVal (Proxy :: Proxy b))) 29 | {-# INLINE natSing2 #-} 30 | 31 | 32 | -------------------------------------------------------------------------------- /examples/test/gold/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /examples/test/gold/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /examples/test/gold/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /garnix.yaml: -------------------------------------------------------------------------------- 1 | builds: 2 | exclude: [] 3 | include: 4 | - '*.aarch64-darwin.*' 5 | - '*.aarch64-darwin' 6 | - '*.x86_64-linux.*' 7 | - '*.x86_64-linux' 8 | - 'nixosConfigurations.*' 9 | -------------------------------------------------------------------------------- /graphics/README.md: -------------------------------------------------------------------------------- 1 | This sub-project aims at reproducing [Pan](http://conal.net/Pan), [Vertigo](http://conal.net/papers/Vertigo), and [Eros](http://conal.net/papers/Eros/) via compiling-to-categories. 2 | It will combine categories for GPU code generation, GUIs, and differentiable functions (for lighting). 3 | 4 | stack build :graphics-examples 5 | 6 | Each generated shader is embedded in an HTML file in concat/graphics/out/shaders/. 7 | 8 | There are several more commented-out examples in test/Examples.hs. 9 | You can fiddle with comments to change the collection of examples compiled. 10 | That module also serves as an example to copy and make your own examples. 11 | 12 | -------------------------------------------------------------------------------- /graphics/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /graphics/out/shaders/style.css: -------------------------------------------------------------------------------- 1 | input.param { 2 | border: none; 3 | font-size: 100%; 4 | font-family: serif; 5 | background: none; 6 | } 7 | 8 | div#ui { 9 | width: 45ex; 10 | opacity: 0.75; 11 | position: absolute; 12 | top: 1ex; left: 1ex; 13 | background: rgba(80,120,255,0.7); 14 | padding: 5px; 15 | font-size: 90%; 16 | border: 1px solid rgba(80,120,255,0.8); 17 | border-radius: 5px; 18 | /* box-shadow: 10px 10px 35px rgba(80,120,255,0.8); */ 19 | } 20 | 21 | p.sliderLabel { 22 | margin-top: 0ex; 23 | margin-bottom: -1.7ex; 24 | } 25 | 26 | p.slider { 27 | font-size: 70%; 28 | } 29 | 30 | canvas.effect { 31 | /* Visible green means that something broke. Check JavaScript console. */ 32 | background-color: green; 33 | } 34 | 35 | body { margin: 0px } 36 | 37 | 38 | /* Experimental: flex boxes 39 | 40 | div#ui > div { 41 | display: flex; 42 | } 43 | 44 | p.sliderLabel { 45 | width: 30%; 46 | } 47 | 48 | p.sliderLabel input { 49 | width: 40%; 50 | } 51 | 52 | p.slider { 53 | flex-grow: 1; 54 | margin-top: 1ex; 55 | margin-bottom: 1ex; 56 | } 57 | 58 | 59 | */ 60 | -------------------------------------------------------------------------------- /hardware/README.md: -------------------------------------------------------------------------------- 1 | This sub-project aims at translating native Haskell to the Verilog hardware description language (HDL) via compiling-to-categories. 2 | 3 | stack build :hardware-examples 4 | 5 | Each generated circuit is written to a Verilog (\*.v) file in *concat/hardware/out/*. 6 | 7 | There are several more commented-out examples in test/Examples.hs. 8 | You can fiddle with comments to change the collection of examples compiled. 9 | That module also serves as an example to copy and make your own examples. 10 | 11 | -------------------------------------------------------------------------------- /hardware/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /hardware/test/cmplx.v: -------------------------------------------------------------------------------- 1 | /*** 2 | * cmplx.v - General purpose utilities for working with complex numbers 3 | * in Verilog. 4 | * 5 | * Original author: David Banas 6 | * Original date: August 28, 2017 7 | * 8 | * Copyright (c) 2017 David Banas; all rights reserved World wide. 9 | ***/ 10 | 11 | module cmplx; 12 | parameter pi = 3.1416; 13 | 14 | // Complex addition. 15 | task add; 16 | input real x1_r, x1_i, x2_r, x2_i; 17 | output real y_r, y_i; 18 | 19 | begin 20 | y_r = x1_r + x2_r 21 | y_i = x1_i + x2_i 22 | end 23 | endtask 24 | 25 | // Complex multiplication. 26 | task mul; 27 | input real x1_r, x1_i, x2_r, x2_i; 28 | output real y_r, y_i; 29 | 30 | begin 31 | y_r = x1_r * x2_r - x1_i * x2_i; 32 | y_i = x1_r * x2_i + x1_i * x2_r; 33 | end 34 | endtask 35 | 36 | // Complex identity scalar. 37 | task cis; 38 | input real theta; 39 | output real y_r, y_i; 40 | 41 | begin 42 | y_r = trig.cos(theta); 43 | y_i = trig.sin(theta); 44 | end 45 | endtask 46 | 47 | endmodule 48 | 49 | -------------------------------------------------------------------------------- /hardware/test/trig.v: -------------------------------------------------------------------------------- 1 | /*** 2 | * trig.v - Trigonometric functions in Verilog. 3 | * 4 | * Original author: David Banas 5 | * Original date: August 28, 2017 6 | * 7 | * Copyright (c) 2017 David Banas; all rights reserved World wide. 8 | ***/ 9 | 10 | module trig; 11 | parameter real pi = 3.1416; 12 | parameter integer n = 2; // Last index of 'sin_vals'. 13 | 14 | real sin_vals[0:n]; 15 | 16 | // Sine. 17 | function real sin; 18 | input real x; 19 | 20 | begin 21 | x = x % (2 * pi); 22 | if (x > pi) 23 | sin = -_sin(x - pi); 24 | else if (x > pi/2) 25 | sin = _sin(pi/2 - (x % pi/2)); 26 | else 27 | sin = _sin(x); 28 | if () 29 | end 30 | endfunction 31 | 32 | function real _sin; 33 | input real x; 34 | 35 | begin 36 | ir = n * x / (pi/4); 37 | ix = $rtoi(ir); 38 | if (ix == n) 39 | _sin = 1.0; 40 | else 41 | _sin = sin_vals[ix] + (sin_vals[ix+1] - sin_vals[ix]) * (ir - ix); 42 | end 43 | endfunction 44 | 45 | // Cosine. 46 | function real cos; 47 | input real x; 48 | 49 | begin 50 | cos = sin(x + pi/2); 51 | end 52 | endfunction 53 | 54 | // Tangent. 55 | function real tan; 56 | input real x; 57 | 58 | begin 59 | tan = sin(x) / cos(x); 60 | end 61 | endfunction 62 | 63 | initial begin 64 | sin_vals[0] = 0.0; 65 | sin_vals[1] = 0.7071; 66 | sin_vals[2] = 1.0; 67 | end 68 | 69 | -------------------------------------------------------------------------------- /hie.yaml: -------------------------------------------------------------------------------- 1 | cradle: 2 | cabal: 3 | - component: "lib:concat-classes" 4 | path: "./classes/src" 5 | - component: "lib:concat-examples" 6 | path: "./examples/src" 7 | - component: "lib:concat-graphics" 8 | path: "./graphics/src" 9 | - component: "test:graphics-examples" 10 | path: "./graphics/test" 11 | - component: "lib:concat-hardware" 12 | path: "./hardware/src" 13 | - component: "test:hardware-examples" 14 | path: "./hardware/test" 15 | - component: "lib:concat-inline" 16 | path: "./inline/src" 17 | - component: "lib:concat-known" 18 | path: "./known/src" 19 | - component: "lib:concat-plugin" 20 | path: "./plugin/src" 21 | - component: "test:misc-examples" 22 | path: "./plugin/test" 23 | - component: "lib:concat-satisfy" 24 | path: "./satisfy/src" 25 | -------------------------------------------------------------------------------- /inline/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /inline/concat-inline.cabal: -------------------------------------------------------------------------------- 1 | name: concat-inline 2 | version: 0.1.0.0 3 | cabal-version: >=1.18 4 | synopsis: Simple GHC plugin for inlining class-ops 5 | description: Simple GHC plugin for inlining class-ops 6 | Category: categories 7 | license: BSD3 8 | author: Conal Elliott 9 | maintainer: conal@conal.net 10 | Copyright: (c) 2016-2017 by Conal Elliott 11 | build-type: Simple 12 | 13 | source-repository head 14 | type: git 15 | location: git://github.com/conal/concat 16 | 17 | library 18 | default-language: Haskell2010 19 | hs-source-dirs: src 20 | include-dirs: src 21 | build-depends: base >=4.9, ghc 22 | ghc-options: -O2 23 | exposed-modules: 24 | ConCat.Inline.ClassOp 25 | ConCat.Inline.Plugin 26 | ConCat.Inline.SampleMethods 27 | 28 | -------------------------------------------------------------------------------- /inline/src/ConCat/Inline/ClassOp.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -Wall #-} 2 | 3 | module ConCat.Inline.ClassOp where 4 | 5 | -- | Magic function to inline a class-op, since @GHC.Exts.inline@ doesn't want to. 6 | inline :: a -> a 7 | inline x = x 8 | {-# NOINLINE [0] inline #-} 9 | 10 | -- TODO: Maybe augment inline to unfold non-class-ops. Or maybe better as is, so 11 | -- we get more helpful failures. 12 | -------------------------------------------------------------------------------- /inline/src/ConCat/Inline/SampleMethods.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE CPP #-} 2 | {-# OPTIONS_GHC -Wall #-} 3 | -- {-# OPTIONS_GHC -Wno-unused-imports #-} -- TEMP 4 | 5 | -- | Class-op aliases that have been inlined to dictionary method accessors. 6 | -- To see the effect, 7 | -- ghc --show-iface SampleMethods.hi 8 | 9 | -- {-# OPTIONS_GHC -ddump-simpl #-} 10 | -- {-# OPTIONS_GHC -dverbose-core2core #-} 11 | -- {-# OPTIONS_GHC -ddump-rule-rewrites #-} 12 | -- {-# OPTIONS_GHC -ddump-rules #-} 13 | 14 | -- Haddock throws an exception if this plugin is enabled here. 15 | #ifdef D__HADDOCK_VERSION__ 16 | {-# OPTIONS_GHC -fplugin=ConCat.Inline.Plugin #-} 17 | #endif 18 | 19 | module ConCat.Inline.SampleMethods where 20 | 21 | import qualified Prelude as P 22 | import ConCat.Inline.ClassOp (inline) 23 | 24 | (==), (/=) :: P.Eq a => a -> a -> P.Bool 25 | (==) = inline (P.==) 26 | (/=) = inline (P./=) 27 | -------------------------------------------------------------------------------- /known/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /known/concat-known.cabal: -------------------------------------------------------------------------------- 1 | name: concat-known 2 | version: 0.1.0.0 3 | cabal-version: >=1.18 4 | synopsis: Entailments for KnownNat 5 | description: To eliminate when plugins no longer cause spurious recompilation. 6 | Category: Misc 7 | license: BSD3 8 | author: Conal Elliott 9 | maintainer: conal@conal.net 10 | Copyright: (c) 2018 by Conal Elliott 11 | build-type: Simple 12 | 13 | source-repository head 14 | type: git 15 | location: git://github.com/conal/concat 16 | 17 | library 18 | default-language: Haskell2010 19 | hs-source-dirs: src 20 | include-dirs: src 21 | build-depends: base >=4.9, constraints, ghc-typelits-knownnat 22 | ghc-options: -O2 23 | exposed-modules: 24 | ConCat.Known 25 | 26 | -------------------------------------------------------------------------------- /nix/netlist-overlay.nix: -------------------------------------------------------------------------------- 1 | final: prev: hfinal: hprev: let 2 | netlistSrc = final.fetchFromGitHub { 3 | owner = "ku-fpg"; 4 | repo = "netlist"; 5 | rev = "0f50a9cfd947885cac7fc392a5295cffe0b3ac31"; 6 | sha256 = "tg0UMslWZin6EeUbOruC9jt1xsgYIuk9vGi7uBSOUCw="; 7 | fetchSubmodules = true; 8 | }; 9 | in { 10 | netlist = hfinal.callCabal2nix "netlist" (netlistSrc + /netlist) {}; 11 | verilog = hfinal.callCabal2nix "netlist" (netlistSrc + /verilog) {}; 12 | netlist-to-verilog = 13 | hfinal.callCabal2nix "netlist" (netlistSrc + /netlist-to-verilog) {}; 14 | netlist-to-vhdl = 15 | hfinal.callCabal2nix "netlist" (netlistSrc + /netlist-to-vhdl) {}; 16 | } 17 | -------------------------------------------------------------------------------- /other/header.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /other/proofs.md: -------------------------------------------------------------------------------- 1 | This [literate Haskell](https://wiki.haskell.org/Literate_programming) document provides certain proofs and derivations pertaining to the Haskell code in the [concat-learn repository](https://github.com/conal/concat-learn). 2 | 3 | Original author: [David Banas](mailto:capn.freako@gmail.com) 4 | Original date: August 26, 2018 5 | 6 | Copyright © 2018 David Banas, Conal Elliott; all rights reserved World wide. 7 | 8 | -------------------------------------------------------------------------------- /plugin/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /plugin/src/ConCat.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -Wall #-} 2 | 3 | -- | For importing qualfied by ConCat clients. Enables some rewrite rules and 4 | -- Coercible instances. Unfortunately, doing so leads to warnings of unused 5 | -- imports in the client module. How to resolve (without -Wno-unused-imports)? 6 | 7 | module ConCat (module GHC.Generics) where 8 | 9 | import GHC.Generics -- needed to avoid coercion holes (sorry) 10 | 11 | import ConCat.Rebox () -- rewrite rules 12 | import ConCat.AltCat () -- rewrite rules 13 | -------------------------------------------------------------------------------- /plugin/src/ConCat/OkType.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE CPP #-} 2 | {-# LANGUAGE UndecidableInstances #-} 3 | {-# LANGUAGE FlexibleContexts #-} 4 | {-# LANGUAGE FlexibleInstances #-} 5 | 6 | {-# OPTIONS_GHC -Wall #-} 7 | -- {-# OPTIONS_GHC -Wno-unused-imports #-} -- TEMP 8 | 9 | #define TESTING 10 | 11 | #ifdef TESTING 12 | {-# OPTIONS_GHC -Wno-unused-top-binds #-} 13 | {-# OPTIONS_GHC -Wno-missing-signatures #-} 14 | #endif 15 | 16 | -- | Determine whether the plugin can handle a type. Used in ConCat.Plugin. 17 | 18 | module ConCat.OkType (OkType) where 19 | 20 | import GHC.TypeLits (KnownNat) 21 | import Data.Finite (Finite) 22 | import Data.Vector.Sized (Vector) 23 | 24 | #ifdef TESTING 25 | import ConCat.Misc (Unop) 26 | #endif 27 | import ConCat.Rep 28 | 29 | class OkType t 30 | 31 | instance OkType () 32 | instance OkType Bool 33 | instance OkType Int 34 | instance OkType Integer 35 | instance OkType Float 36 | instance OkType Double 37 | 38 | instance KnownNat n => OkType (Finite n) 39 | instance (KnownNat n, OkType a) => OkType (Vector n a) 40 | 41 | instance (OkType a, OkType b) => OkType (a , b) 42 | instance (OkType a, OkType b) => OkType (a -> b) 43 | 44 | instance {-# overlappable #-} (HasRep t, OkType (Rep t)) => OkType t 45 | 46 | #ifdef TESTING 47 | 48 | ok :: OkType t => Unop t 49 | ok = id 50 | 51 | ok1 = ok :: Unop Int 52 | ok2 = ok :: Unop (Bool,Int) 53 | ok3 = ok :: Unop (Bool,Int,Bool) 54 | 55 | #endif 56 | 57 | -------------------------------------------------------------------------------- /plugin/test/GoldTests.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Test.Tasty (defaultMain) 4 | import BasicTests (basicTests) 5 | 6 | main :: IO () 7 | main = do 8 | defaultMain basicTests 9 | 10 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/add-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-adf-syn.golden: -------------------------------------------------------------------------------- 1 | (addC *** id . repr . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/add-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/add-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c5 [label="{1.0|{}}"] 12 | c6 [label="{{||}|Out}"] 13 | c0:Out0 -> c1:In0 [label="Double"] 14 | c0:Out1 -> c1:In1 [label="Double"] 15 | c1:Out0 -> c6:In0 [label="Double"] 16 | c5:Out0 -> c6:In1 [label="Double"] 17 | c5:Out0 -> c6:In2 [label="Double"] 18 | } 19 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-syn.golden: -------------------------------------------------------------------------------- 1 | curry addC -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-uncurry-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_uncurry { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c5 [label="{{|}|+|{}}"] 11 | c6 [label="{{}|Out}"] 12 | c0:Out0 -> c5:In0 [label="Double"] 13 | c0:Out1 -> c5:In1 [label="Double"] 14 | c5:Out0 -> c6:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/add-uncurry-syn.golden: -------------------------------------------------------------------------------- 1 | apply . (curry addC . exl *** exr) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/complex-mul-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/complex-mul-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/complex-mul-syn.golden: -------------------------------------------------------------------------------- 1 | apply . 2 | (curry 3 | (abst . 4 | ((subC . 5 | (mulC . (exl . exr . exl *** exl . exr) . dup *** 6 | mulC . (exr . exr . exl *** exr . exr) . dup) . 7 | dup *** 8 | addC . 9 | (mulC . (exl . exr . exl *** exr . exr) . dup *** 10 | mulC . (exr . exr . exl *** exl . exr) . dup) . 11 | dup) . 12 | dup) . 13 | ((id *** repr . exr . exr . exl) . dup) . 14 | ((id *** repr . exl . exr) . dup) . dup) . 15 | exl *** 16 | exr) . 17 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2x-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2x-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2x-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2x-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2x-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2x-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2xx-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2xx-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2xx-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2xx-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2xx-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-2xx-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | cosC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** 5 | abst . 6 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 7 | dup) *** 8 | cosC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . 7 | abst . 8 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 9 | dup) *** 10 | cosC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c14 [label="{{}|cos|{}}"] 11 | c15 [label="{{}|sin|{}}"] 12 | c16 [label="{{}|negate|{}}"] 13 | c26 [label="{{|}|Out}"] 14 | c0:Out0 -> c14:In0 [label="Double"] 15 | c0:Out0 -> c15:In0 [label="Double"] 16 | c15:Out0 -> c16:In0 [label="Double"] 17 | c14:Out0 -> c26:In0 [label="Double"] 18 | c16:Out0 -> c26:In1 [label="Double"] 19 | } 20 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . 9 | abst . 10 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 11 | dup) *** 12 | cosC) . 13 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-xpy-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-xpy-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-xpy-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | apply . 15 | ((curry 16 | ((exr *** 17 | abst . 18 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 19 | dup) *** 20 | cosC) . 21 | dup) . 22 | exl) . 23 | dup) . 24 | (addC *** abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-xpy-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cos-xpy-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-xpy-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | apply . 23 | ((curry 24 | ((exr *** 25 | abst . 26 | abst . 27 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 28 | dup) *** 29 | cosC) . 30 | dup) . 31 | exl) . 32 | dup) . 33 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-xpy-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_xpy_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c63 [label="{{}|cos|{}}"] 12 | c64 [label="{{}|sin|{}}"] 13 | c65 [label="{{}|negate|{}}"] 14 | c119 [label="{{||}|Out}"] 15 | c0:Out0 -> c1:In0 [label="Double"] 16 | c0:Out1 -> c1:In1 [label="Double"] 17 | c1:Out0 -> c63:In0 [label="Double"] 18 | c1:Out0 -> c64:In0 [label="Double"] 19 | c64:Out0 -> c65:In0 [label="Double"] 20 | c63:Out0 -> c119:In0 [label="Double"] 21 | c65:Out0 -> c119:In1 [label="Double"] 22 | c65:Out0 -> c119:In2 [label="Double"] 23 | } 24 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cos-xpy-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | apply . 25 | ((curry 26 | ((exr *** 27 | abst . 28 | abst . 29 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 30 | dup) *** 31 | cosC) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cosSinProd-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/cosSinProd-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/cosSinProd-syn.golden: -------------------------------------------------------------------------------- 1 | ((cosC *** sinC) . dup) . mulC -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/dup-dot.golden: -------------------------------------------------------------------------------- 1 | digraph dup { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | c0:Out0 -> c1:In1 [label="Double"] 13 | } 14 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/dup-syn.golden: -------------------------------------------------------------------------------- 1 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/fst-dot.golden: -------------------------------------------------------------------------------- 1 | digraph fst { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | } 13 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/fst-syn.golden: -------------------------------------------------------------------------------- 1 | exl -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/horner-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/horner-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/horner-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | (const 1.0 *** 3 | mulC . 4 | (id *** 5 | addC . 6 | (const 3.0 *** 7 | mulC . 8 | (id *** addC . (const 5.0 *** mulC . (id *** const 0.0) . dup) . dup) . 9 | dup) . 10 | dup) . 11 | dup) . 12 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/log-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/log-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/log-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | logC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/magSqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/magSqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/magSqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/magSqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/magSqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/magSqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/magSqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/magSqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/magSqr-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | ((mulC . ((exl *** exl) . dup) . exr *** mulC . ((exr *** exr) . dup) . exr) . 3 | dup) . 4 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sin-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/sin-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sin-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 5 | dup) *** 6 | sinC) . 7 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sin-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/sin-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sin-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 7 | dup) *** 8 | sinC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sin-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph sin_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c12 [label="{{}|sin|{}}"] 11 | c13 [label="{{}|cos|{}}"] 12 | c22 [label="{{|}|Out}"] 13 | c0:Out0 -> c12:In0 [label="Double"] 14 | c0:Out0 -> c13:In0 [label="Double"] 15 | c12:Out0 -> c22:In0 [label="Double"] 16 | c13:Out0 -> c22:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sin-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 9 | dup) *** 10 | sinC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/sqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((mulC *** 15 | apply . 16 | ((curry 17 | (abst . 18 | curry (addC . apply) . 19 | apply . 20 | (curry 21 | (curry 22 | ((apply . (exl . exl *** exl . exr) . dup *** 23 | apply . (exr . exl *** exr . exr) . dup) . 24 | dup)) . 25 | repr . exl *** 26 | repr . exr) . 27 | dup) . 28 | abst . curry mulC . exr . exr *** 29 | abst . curry mulC . exl . exr) . 30 | dup) . 31 | dup) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/sqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((mulC *** 23 | apply . 24 | ((curry 25 | (abst . 26 | apply . 27 | (coerce . 28 | curry (apply . (exl *** repr . exr) . dup) . 29 | curry 30 | (curry 31 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 32 | repr . 33 | apply . 34 | (coerce . 35 | curry (apply . (exl *** repr . exr) . dup) . 36 | curry 37 | (curry 38 | ((apply . (exl . exl *** exl . exr) . dup *** 39 | apply . (exr . exl *** exr . exr) . dup) . 40 | dup)) . 41 | repr . repr . exl *** 42 | repr . exr) . 43 | dup *** 44 | abst . curry (dup . exr)) . 45 | dup) . 46 | abst . abst . curry mulC . exr . exr *** 47 | abst . abst . curry mulC . exl . exr) . 48 | dup) . 49 | dup) . 50 | dup) . 51 | exl) . 52 | dup) . 53 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/sqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/sqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((mulC *** 25 | apply . 26 | ((curry 27 | (abst . 28 | apply . 29 | (coerce . 30 | curry (apply . (exl *** repr . exr) . dup) . 31 | curry 32 | (curry 33 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 34 | repr . 35 | apply . 36 | (coerce . 37 | curry (apply . (exl *** repr . exr) . dup) . 38 | curry 39 | (curry 40 | ((apply . (exl . exl *** exl . exr) . dup *** 41 | apply . (exr . exl *** exr . exr) . dup) . 42 | dup)) . 43 | repr . repr . exl *** 44 | repr . exr) . 45 | dup *** 46 | abst . curry (dup . exr)) . 47 | dup) . 48 | abst . abst . curry mulC . exr . exr *** 49 | abst . abst . curry mulC . exl . exr) . 50 | dup) . 51 | dup) . 52 | dup) . 53 | exl) . 54 | dup) . 55 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/sqr-syn.golden: -------------------------------------------------------------------------------- 1 | mulC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/twice-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((addC *** abst . curry (addC . exr)) . dup) . exl) . 15 | dup) . 16 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/twice-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 23 | dup) . 24 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c2 [label="{{}|Out}"] 12 | c0:Out0 -> c1:In0 [label="Double"] 13 | c0:Out0 -> c1:In1 [label="Double"] 14 | c1:Out0 -> c2:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c53 [label="{{|}|+|{}}"] 11 | c101 [label="{2.0|{}}"] 12 | c102 [label="{{|}|Out}"] 13 | c0:Out0 -> c53:In0 [label="Double"] 14 | c0:Out0 -> c53:In1 [label="Double"] 15 | c53:Out0 -> c102:In0 [label="Double"] 16 | c101:Out0 -> c102:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 25 | dup) . 26 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/twice-syn.golden: -------------------------------------------------------------------------------- 1 | addC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/xp3y-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.0.2/xp3y-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.0.2/xp3y-syn.golden: -------------------------------------------------------------------------------- 1 | addC . ((exl . exr *** mulC . (const 3.0 *** exr . exr) . dup) . dup) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/add-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-adf-syn.golden: -------------------------------------------------------------------------------- 1 | (addC *** id . repr . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/add-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/add-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c5 [label="{1.0|{}}"] 12 | c6 [label="{{||}|Out}"] 13 | c0:Out0 -> c1:In0 [label="Double"] 14 | c0:Out1 -> c1:In1 [label="Double"] 15 | c1:Out0 -> c6:In0 [label="Double"] 16 | c5:Out0 -> c6:In1 [label="Double"] 17 | c5:Out0 -> c6:In2 [label="Double"] 18 | } 19 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-syn.golden: -------------------------------------------------------------------------------- 1 | curry addC -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-uncurry-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_uncurry { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c5 [label="{{|}|+|{}}"] 11 | c6 [label="{{}|Out}"] 12 | c0:Out0 -> c5:In0 [label="Double"] 13 | c0:Out1 -> c5:In1 [label="Double"] 14 | c5:Out0 -> c6:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/add-uncurry-syn.golden: -------------------------------------------------------------------------------- 1 | apply . (curry addC . exl *** exr) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/complex-mul-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/complex-mul-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/complex-mul-syn.golden: -------------------------------------------------------------------------------- 1 | apply . 2 | (curry 3 | (abst . 4 | ((subC . 5 | (mulC . (exl . exr . exl *** exl . exr) . dup *** 6 | mulC . (exr . exr . exl *** exr . exr) . dup) . 7 | dup *** 8 | addC . 9 | (mulC . (exl . exr . exl *** exr . exr) . dup *** 10 | mulC . (exr . exr . exl *** exl . exr) . dup) . 11 | dup) . 12 | dup) . 13 | ((id *** repr . exr . exr . exl) . dup) . 14 | ((id *** repr . exl . exr) . dup) . dup) . 15 | exl *** 16 | exr) . 17 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2x-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2x-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2x-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2x-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2x-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2x-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2xx-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2xx-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2xx-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2xx-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2xx-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-2xx-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | cosC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** 5 | abst . 6 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 7 | dup) *** 8 | cosC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . 7 | abst . 8 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 9 | dup) *** 10 | cosC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c14 [label="{{}|cos|{}}"] 11 | c15 [label="{{}|sin|{}}"] 12 | c16 [label="{{}|negate|{}}"] 13 | c26 [label="{{|}|Out}"] 14 | c0:Out0 -> c14:In0 [label="Double"] 15 | c0:Out0 -> c15:In0 [label="Double"] 16 | c15:Out0 -> c16:In0 [label="Double"] 17 | c14:Out0 -> c26:In0 [label="Double"] 18 | c16:Out0 -> c26:In1 [label="Double"] 19 | } 20 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . 9 | abst . 10 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 11 | dup) *** 12 | cosC) . 13 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-xpy-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-xpy-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-xpy-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | apply . 15 | ((curry 16 | ((exr *** 17 | abst . 18 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 19 | dup) *** 20 | cosC) . 21 | dup) . 22 | exl) . 23 | dup) . 24 | (addC *** abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-xpy-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cos-xpy-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-xpy-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | apply . 23 | ((curry 24 | ((exr *** 25 | abst . 26 | abst . 27 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 28 | dup) *** 29 | cosC) . 30 | dup) . 31 | exl) . 32 | dup) . 33 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-xpy-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_xpy_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c63 [label="{{}|cos|{}}"] 12 | c64 [label="{{}|sin|{}}"] 13 | c65 [label="{{}|negate|{}}"] 14 | c119 [label="{{||}|Out}"] 15 | c0:Out0 -> c1:In0 [label="Double"] 16 | c0:Out1 -> c1:In1 [label="Double"] 17 | c1:Out0 -> c63:In0 [label="Double"] 18 | c1:Out0 -> c64:In0 [label="Double"] 19 | c64:Out0 -> c65:In0 [label="Double"] 20 | c63:Out0 -> c119:In0 [label="Double"] 21 | c65:Out0 -> c119:In1 [label="Double"] 22 | c65:Out0 -> c119:In2 [label="Double"] 23 | } 24 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cos-xpy-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | apply . 25 | ((curry 26 | ((exr *** 27 | abst . 28 | abst . 29 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 30 | dup) *** 31 | cosC) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cosSinProd-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/cosSinProd-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/cosSinProd-syn.golden: -------------------------------------------------------------------------------- 1 | ((cosC *** sinC) . dup) . mulC -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/dup-dot.golden: -------------------------------------------------------------------------------- 1 | digraph dup { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | c0:Out0 -> c1:In1 [label="Double"] 13 | } 14 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/dup-syn.golden: -------------------------------------------------------------------------------- 1 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/fst-dot.golden: -------------------------------------------------------------------------------- 1 | digraph fst { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | } 13 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/fst-syn.golden: -------------------------------------------------------------------------------- 1 | exl -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/horner-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/horner-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/horner-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | (const 1.0 *** 3 | mulC . 4 | (id *** 5 | addC . 6 | (const 3.0 *** 7 | mulC . 8 | (id *** addC . (const 5.0 *** mulC . (id *** const 0.0) . dup) . dup) . 9 | dup) . 10 | dup) . 11 | dup) . 12 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/log-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/log-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/log-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | logC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/magSqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/magSqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/magSqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/magSqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/magSqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/magSqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/magSqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/magSqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/magSqr-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | ((mulC . ((exl *** exl) . dup) . exr *** mulC . ((exr *** exr) . dup) . exr) . 3 | dup) . 4 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sin-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/sin-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sin-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 5 | dup) *** 6 | sinC) . 7 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sin-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/sin-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sin-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 7 | dup) *** 8 | sinC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sin-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph sin_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c12 [label="{{}|sin|{}}"] 11 | c13 [label="{{}|cos|{}}"] 12 | c22 [label="{{|}|Out}"] 13 | c0:Out0 -> c12:In0 [label="Double"] 14 | c0:Out0 -> c13:In0 [label="Double"] 15 | c12:Out0 -> c22:In0 [label="Double"] 16 | c13:Out0 -> c22:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sin-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 9 | dup) *** 10 | sinC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/sqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((mulC *** 15 | apply . 16 | ((coerce . 17 | curry 18 | (curry (addC . apply) . 19 | apply . 20 | (curry 21 | (curry 22 | ((apply . (exl . exl *** exl . exr) . dup *** 23 | apply . (exr . exl *** exr . exr) . dup) . 24 | dup)) . 25 | repr . exl *** 26 | repr . exr) . 27 | dup) . 28 | abst . curry mulC . exr . exr *** 29 | abst . curry mulC . exl . exr) . 30 | dup) . 31 | dup) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/sqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((mulC *** 23 | apply . 24 | ((curry 25 | (abst . 26 | apply . 27 | (coerce . 28 | curry (apply . (exl *** repr . exr) . dup) . 29 | curry 30 | (curry 31 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 32 | repr . 33 | apply . 34 | (coerce . 35 | curry (apply . (exl *** repr . exr) . dup) . 36 | curry 37 | (curry 38 | ((apply . (exl . exl *** exl . exr) . dup *** 39 | apply . (exr . exl *** exr . exr) . dup) . 40 | dup)) . 41 | repr . repr . exl *** 42 | repr . exr) . 43 | dup *** 44 | abst . curry (dup . exr)) . 45 | dup) . 46 | abst . abst . curry mulC . exr . exr *** 47 | abst . abst . curry mulC . exl . exr) . 48 | dup) . 49 | dup) . 50 | dup) . 51 | exl) . 52 | dup) . 53 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/sqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/sqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/sqr-syn.golden: -------------------------------------------------------------------------------- 1 | mulC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/twice-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((addC *** abst . curry (addC . exr)) . dup) . exl) . 15 | dup) . 16 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/twice-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 23 | dup) . 24 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c2 [label="{{}|Out}"] 12 | c0:Out0 -> c1:In0 [label="Double"] 13 | c0:Out0 -> c1:In1 [label="Double"] 14 | c1:Out0 -> c2:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c53 [label="{{|}|+|{}}"] 11 | c101 [label="{2.0|{}}"] 12 | c102 [label="{{|}|Out}"] 13 | c0:Out0 -> c53:In0 [label="Double"] 14 | c0:Out0 -> c53:In1 [label="Double"] 15 | c53:Out0 -> c102:In0 [label="Double"] 16 | c101:Out0 -> c102:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 25 | dup) . 26 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/twice-syn.golden: -------------------------------------------------------------------------------- 1 | addC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/xp3y-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.1/xp3y-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.1/xp3y-syn.golden: -------------------------------------------------------------------------------- 1 | addC . ((exl . exr *** mulC . (const 3.0 *** exr . exr) . dup) . dup) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/add-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-adf-syn.golden: -------------------------------------------------------------------------------- 1 | (addC *** id . repr . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/add-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/add-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c5 [label="{1.0|{}}"] 12 | c6 [label="{{||}|Out}"] 13 | c0:Out0 -> c1:In0 [label="Double"] 14 | c0:Out1 -> c1:In1 [label="Double"] 15 | c1:Out0 -> c6:In0 [label="Double"] 16 | c5:Out0 -> c6:In1 [label="Double"] 17 | c5:Out0 -> c6:In2 [label="Double"] 18 | } 19 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-syn.golden: -------------------------------------------------------------------------------- 1 | curry addC -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-uncurry-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_uncurry { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c5 [label="{{|}|+|{}}"] 11 | c6 [label="{{}|Out}"] 12 | c0:Out0 -> c5:In0 [label="Double"] 13 | c0:Out1 -> c5:In1 [label="Double"] 14 | c5:Out0 -> c6:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/add-uncurry-syn.golden: -------------------------------------------------------------------------------- 1 | apply . (curry addC . exl *** exr) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/complex-mul-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/complex-mul-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/complex-mul-syn.golden: -------------------------------------------------------------------------------- 1 | apply . 2 | (curry 3 | (abst . 4 | ((subC . 5 | (mulC . (exl . exr . exl *** exl . exr) . dup *** 6 | mulC . (exr . exr . exl *** exr . exr) . dup) . 7 | dup *** 8 | addC . 9 | (mulC . (exl . exr . exl *** exr . exr) . dup *** 10 | mulC . (exr . exr . exl *** exl . exr) . dup) . 11 | dup) . 12 | dup) . 13 | ((id *** repr . exr . exr . exl) . dup) . 14 | ((id *** repr . exl . exr) . dup) . dup) . 15 | exl *** 16 | exr) . 17 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2x-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2x-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2x-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2x-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2x-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2x-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2xx-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2xx-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2xx-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2xx-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2xx-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-2xx-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | cosC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** 5 | abst . 6 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 7 | dup) *** 8 | cosC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . 7 | abst . 8 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 9 | dup) *** 10 | cosC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c14 [label="{{}|cos|{}}"] 11 | c15 [label="{{}|sin|{}}"] 12 | c16 [label="{{}|negate|{}}"] 13 | c26 [label="{{|}|Out}"] 14 | c0:Out0 -> c14:In0 [label="Double"] 15 | c0:Out0 -> c15:In0 [label="Double"] 16 | c15:Out0 -> c16:In0 [label="Double"] 17 | c14:Out0 -> c26:In0 [label="Double"] 18 | c16:Out0 -> c26:In1 [label="Double"] 19 | } 20 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . 9 | abst . 10 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 11 | dup) *** 12 | cosC) . 13 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-xpy-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-xpy-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-xpy-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | apply . 15 | ((curry 16 | ((exr *** 17 | abst . 18 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 19 | dup) *** 20 | cosC) . 21 | dup) . 22 | exl) . 23 | dup) . 24 | (addC *** abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-xpy-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cos-xpy-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-xpy-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | apply . 23 | ((curry 24 | ((exr *** 25 | abst . 26 | abst . 27 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 28 | dup) *** 29 | cosC) . 30 | dup) . 31 | exl) . 32 | dup) . 33 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-xpy-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_xpy_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c63 [label="{{}|cos|{}}"] 12 | c64 [label="{{}|sin|{}}"] 13 | c65 [label="{{}|negate|{}}"] 14 | c119 [label="{{||}|Out}"] 15 | c0:Out0 -> c1:In0 [label="Double"] 16 | c0:Out1 -> c1:In1 [label="Double"] 17 | c1:Out0 -> c63:In0 [label="Double"] 18 | c1:Out0 -> c64:In0 [label="Double"] 19 | c64:Out0 -> c65:In0 [label="Double"] 20 | c63:Out0 -> c119:In0 [label="Double"] 21 | c65:Out0 -> c119:In1 [label="Double"] 22 | c65:Out0 -> c119:In2 [label="Double"] 23 | } 24 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cos-xpy-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | apply . 25 | ((curry 26 | ((exr *** 27 | abst . 28 | abst . 29 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 30 | dup) *** 31 | cosC) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cosSinProd-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/cosSinProd-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/cosSinProd-syn.golden: -------------------------------------------------------------------------------- 1 | ((cosC *** sinC) . dup) . mulC -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/dup-dot.golden: -------------------------------------------------------------------------------- 1 | digraph dup { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | c0:Out0 -> c1:In1 [label="Double"] 13 | } 14 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/dup-syn.golden: -------------------------------------------------------------------------------- 1 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/fst-dot.golden: -------------------------------------------------------------------------------- 1 | digraph fst { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | } 13 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/fst-syn.golden: -------------------------------------------------------------------------------- 1 | exl -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/horner-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/horner-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/horner-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | (const 1.0 *** 3 | mulC . 4 | (id *** 5 | addC . 6 | (const 3.0 *** 7 | mulC . 8 | (id *** addC . (const 5.0 *** mulC . (id *** const 0.0) . dup) . dup) . 9 | dup) . 10 | dup) . 11 | dup) . 12 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/log-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/log-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/log-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | logC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/magSqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/magSqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/magSqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/magSqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/magSqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/magSqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/magSqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/magSqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/magSqr-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | ((mulC . ((exl *** exl) . dup) . exr *** mulC . ((exr *** exr) . dup) . exr) . 3 | dup) . 4 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sin-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/sin-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sin-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 5 | dup) *** 6 | sinC) . 7 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sin-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/sin-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sin-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 7 | dup) *** 8 | sinC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sin-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph sin_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c12 [label="{{}|sin|{}}"] 11 | c13 [label="{{}|cos|{}}"] 12 | c22 [label="{{|}|Out}"] 13 | c0:Out0 -> c12:In0 [label="Double"] 14 | c0:Out0 -> c13:In0 [label="Double"] 15 | c12:Out0 -> c22:In0 [label="Double"] 16 | c13:Out0 -> c22:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sin-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 9 | dup) *** 10 | sinC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/sqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((mulC *** 15 | apply . 16 | ((coerce . 17 | curry 18 | (curry (addC . apply) . 19 | apply . 20 | (curry 21 | (curry 22 | ((apply . (exl . exl *** exl . exr) . dup *** 23 | apply . (exr . exl *** exr . exr) . dup) . 24 | dup)) . 25 | repr . exl *** 26 | repr . exr) . 27 | dup) . 28 | abst . curry mulC . exr . exr *** 29 | abst . curry mulC . exl . exr) . 30 | dup) . 31 | dup) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/sqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((mulC *** 23 | apply . 24 | ((curry 25 | (abst . 26 | apply . 27 | (coerce . 28 | curry (apply . (exl *** repr . exr) . dup) . 29 | curry 30 | (curry 31 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 32 | repr . 33 | apply . 34 | (coerce . 35 | curry (apply . (exl *** repr . exr) . dup) . 36 | curry 37 | (curry 38 | ((apply . (exl . exl *** exl . exr) . dup *** 39 | apply . (exr . exl *** exr . exr) . dup) . 40 | dup)) . 41 | repr . repr . exl *** 42 | repr . exr) . 43 | dup *** 44 | abst . curry (dup . exr)) . 45 | dup) . 46 | abst . abst . curry mulC . exr . exr *** 47 | abst . abst . curry mulC . exl . exr) . 48 | dup) . 49 | dup) . 50 | dup) . 51 | exl) . 52 | dup) . 53 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/sqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/sqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/sqr-syn.golden: -------------------------------------------------------------------------------- 1 | mulC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/twice-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((addC *** abst . curry (addC . exr)) . dup) . exl) . 15 | dup) . 16 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/twice-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 23 | dup) . 24 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c2 [label="{{}|Out}"] 12 | c0:Out0 -> c1:In0 [label="Double"] 13 | c0:Out0 -> c1:In1 [label="Double"] 14 | c1:Out0 -> c2:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c53 [label="{{|}|+|{}}"] 11 | c101 [label="{2.0|{}}"] 12 | c102 [label="{{|}|Out}"] 13 | c0:Out0 -> c53:In0 [label="Double"] 14 | c0:Out0 -> c53:In1 [label="Double"] 15 | c53:Out0 -> c102:In0 [label="Double"] 16 | c101:Out0 -> c102:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 25 | dup) . 26 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/twice-syn.golden: -------------------------------------------------------------------------------- 1 | addC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/xp3y-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.2/xp3y-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.2/xp3y-syn.golden: -------------------------------------------------------------------------------- 1 | addC . ((exl . exr *** mulC . (const 3.0 *** exr . exr) . dup) . dup) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/add-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-adf-syn.golden: -------------------------------------------------------------------------------- 1 | (addC *** id . repr . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/add-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/add-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c5 [label="{1.0|{}}"] 12 | c6 [label="{{||}|Out}"] 13 | c0:Out0 -> c1:In0 [label="Double"] 14 | c0:Out1 -> c1:In1 [label="Double"] 15 | c1:Out0 -> c6:In0 [label="Double"] 16 | c5:Out0 -> c6:In1 [label="Double"] 17 | c5:Out0 -> c6:In2 [label="Double"] 18 | } 19 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-syn.golden: -------------------------------------------------------------------------------- 1 | curry addC -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-uncurry-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_uncurry { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c5 [label="{{|}|+|{}}"] 11 | c6 [label="{{}|Out}"] 12 | c0:Out0 -> c5:In0 [label="Double"] 13 | c0:Out1 -> c5:In1 [label="Double"] 14 | c5:Out0 -> c6:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/add-uncurry-syn.golden: -------------------------------------------------------------------------------- 1 | apply . (curry addC . exl *** exr) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/complex-mul-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/complex-mul-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/complex-mul-syn.golden: -------------------------------------------------------------------------------- 1 | apply . 2 | (curry 3 | (abst . 4 | ((subC . 5 | (mulC . (exl . exr . exl *** exl . exr) . dup *** 6 | mulC . (exr . exr . exl *** exr . exr) . dup) . 7 | dup *** 8 | addC . 9 | (mulC . (exl . exr . exl *** exr . exr) . dup *** 10 | mulC . (exr . exr . exl *** exl . exr) . dup) . 11 | dup) . 12 | dup) . 13 | ((id *** repr . exr . exr . exl) . dup) . 14 | ((id *** repr . exl . exr) . dup) . dup) . 15 | exl *** 16 | exr) . 17 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2x-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2x-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2x-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2x-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2x-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2x-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2xx-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2xx-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2xx-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2xx-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2xx-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-2xx-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | cosC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** 5 | abst . 6 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 7 | dup) *** 8 | cosC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . 7 | abst . 8 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 9 | dup) *** 10 | cosC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c14 [label="{{}|cos|{}}"] 11 | c15 [label="{{}|sin|{}}"] 12 | c16 [label="{{}|negate|{}}"] 13 | c26 [label="{{|}|Out}"] 14 | c0:Out0 -> c14:In0 [label="Double"] 15 | c0:Out0 -> c15:In0 [label="Double"] 16 | c15:Out0 -> c16:In0 [label="Double"] 17 | c14:Out0 -> c26:In0 [label="Double"] 18 | c16:Out0 -> c26:In1 [label="Double"] 19 | } 20 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . 9 | abst . 10 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 11 | dup) *** 12 | cosC) . 13 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-xpy-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-xpy-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-xpy-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | apply . 15 | ((curry 16 | ((exr *** 17 | abst . 18 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 19 | dup) *** 20 | cosC) . 21 | dup) . 22 | exl) . 23 | dup) . 24 | (addC *** abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-xpy-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cos-xpy-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-xpy-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | apply . 23 | ((curry 24 | ((exr *** 25 | abst . 26 | abst . 27 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 28 | dup) *** 29 | cosC) . 30 | dup) . 31 | exl) . 32 | dup) . 33 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-xpy-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_xpy_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c63 [label="{{}|cos|{}}"] 12 | c64 [label="{{}|sin|{}}"] 13 | c65 [label="{{}|negate|{}}"] 14 | c119 [label="{{||}|Out}"] 15 | c0:Out0 -> c1:In0 [label="Double"] 16 | c0:Out1 -> c1:In1 [label="Double"] 17 | c1:Out0 -> c63:In0 [label="Double"] 18 | c1:Out0 -> c64:In0 [label="Double"] 19 | c64:Out0 -> c65:In0 [label="Double"] 20 | c63:Out0 -> c119:In0 [label="Double"] 21 | c65:Out0 -> c119:In1 [label="Double"] 22 | c65:Out0 -> c119:In2 [label="Double"] 23 | } 24 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cos-xpy-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | apply . 25 | ((curry 26 | ((exr *** 27 | abst . 28 | abst . 29 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 30 | dup) *** 31 | cosC) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cosSinProd-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/cosSinProd-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/cosSinProd-syn.golden: -------------------------------------------------------------------------------- 1 | ((cosC *** sinC) . dup) . mulC -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/dup-dot.golden: -------------------------------------------------------------------------------- 1 | digraph dup { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | c0:Out0 -> c1:In1 [label="Double"] 13 | } 14 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/dup-syn.golden: -------------------------------------------------------------------------------- 1 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/fst-dot.golden: -------------------------------------------------------------------------------- 1 | digraph fst { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | } 13 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/fst-syn.golden: -------------------------------------------------------------------------------- 1 | exl -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/horner-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/horner-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/horner-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | (const 1.0 *** 3 | mulC . 4 | (id *** 5 | addC . 6 | (const 3.0 *** 7 | mulC . 8 | (id *** addC . (const 5.0 *** mulC . (id *** const 0.0) . dup) . dup) . 9 | dup) . 10 | dup) . 11 | dup) . 12 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/log-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/log-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/log-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | logC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/magSqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/magSqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/magSqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/magSqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/magSqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/magSqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/magSqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/magSqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/magSqr-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | ((mulC . ((exl *** exl) . dup) . exr *** mulC . ((exr *** exr) . dup) . exr) . 3 | dup) . 4 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sin-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/sin-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sin-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 5 | dup) *** 6 | sinC) . 7 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sin-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/sin-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sin-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 7 | dup) *** 8 | sinC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sin-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph sin_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c12 [label="{{}|sin|{}}"] 11 | c13 [label="{{}|cos|{}}"] 12 | c22 [label="{{|}|Out}"] 13 | c0:Out0 -> c12:In0 [label="Double"] 14 | c0:Out0 -> c13:In0 [label="Double"] 15 | c12:Out0 -> c22:In0 [label="Double"] 16 | c13:Out0 -> c22:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sin-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 9 | dup) *** 10 | sinC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/sqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((mulC *** 15 | apply . 16 | ((coerce . 17 | curry 18 | (curry (addC . apply) . 19 | apply . 20 | (curry 21 | (curry 22 | ((apply . (exl . exl *** exl . exr) . dup *** 23 | apply . (exr . exl *** exr . exr) . dup) . 24 | dup)) . 25 | repr . exl *** 26 | repr . exr) . 27 | dup) . 28 | abst . curry mulC . exr . exr *** 29 | abst . curry mulC . exl . exr) . 30 | dup) . 31 | dup) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/sqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((mulC *** 23 | apply . 24 | ((curry 25 | (abst . 26 | apply . 27 | (coerce . 28 | curry (apply . (exl *** repr . exr) . dup) . 29 | curry 30 | (curry 31 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 32 | repr . 33 | apply . 34 | (coerce . 35 | curry (apply . (exl *** repr . exr) . dup) . 36 | curry 37 | (curry 38 | ((apply . (exl . exl *** exl . exr) . dup *** 39 | apply . (exr . exl *** exr . exr) . dup) . 40 | dup)) . 41 | repr . repr . exl *** 42 | repr . exr) . 43 | dup *** 44 | abst . curry (dup . exr)) . 45 | dup) . 46 | abst . abst . curry mulC . exr . exr *** 47 | abst . abst . curry mulC . exl . exr) . 48 | dup) . 49 | dup) . 50 | dup) . 51 | exl) . 52 | dup) . 53 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/sqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/sqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/sqr-syn.golden: -------------------------------------------------------------------------------- 1 | mulC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/twice-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((addC *** abst . curry (addC . exr)) . dup) . exl) . 15 | dup) . 16 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/twice-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 23 | dup) . 24 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c2 [label="{{}|Out}"] 12 | c0:Out0 -> c1:In0 [label="Double"] 13 | c0:Out0 -> c1:In1 [label="Double"] 14 | c1:Out0 -> c2:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c53 [label="{{|}|+|{}}"] 11 | c101 [label="{2.0|{}}"] 12 | c102 [label="{{|}|Out}"] 13 | c0:Out0 -> c53:In0 [label="Double"] 14 | c0:Out0 -> c53:In1 [label="Double"] 15 | c53:Out0 -> c102:In0 [label="Double"] 16 | c101:Out0 -> c102:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 25 | dup) . 26 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/twice-syn.golden: -------------------------------------------------------------------------------- 1 | addC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/xp3y-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.2.8/xp3y-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.2.8/xp3y-syn.golden: -------------------------------------------------------------------------------- 1 | addC . ((exl . exr *** mulC . (const 3.0 *** exr . exr) . dup) . dup) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/add-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-adf-syn.golden: -------------------------------------------------------------------------------- 1 | (addC *** id . repr . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/add-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/add-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c5 [label="{1.0|{}}"] 12 | c6 [label="{{||}|Out}"] 13 | c0:Out0 -> c1:In0 [label="Double"] 14 | c0:Out1 -> c1:In1 [label="Double"] 15 | c1:Out0 -> c6:In0 [label="Double"] 16 | c5:Out0 -> c6:In1 [label="Double"] 17 | c5:Out0 -> c6:In2 [label="Double"] 18 | } 19 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-syn.golden: -------------------------------------------------------------------------------- 1 | curry addC -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-uncurry-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_uncurry { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c5 [label="{{|}|+|{}}"] 11 | c6 [label="{{}|Out}"] 12 | c0:Out0 -> c5:In0 [label="Double"] 13 | c0:Out1 -> c5:In1 [label="Double"] 14 | c5:Out0 -> c6:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/add-uncurry-syn.golden: -------------------------------------------------------------------------------- 1 | apply . (curry addC . exl *** exr) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/complex-mul-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/complex-mul-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/complex-mul-syn.golden: -------------------------------------------------------------------------------- 1 | apply . 2 | (curry 3 | (abst . 4 | ((subC . 5 | (mulC . (exl . exr . exl *** exl . exr) . dup *** 6 | mulC . (exr . exr . exl *** exr . exr) . dup) . 7 | dup *** 8 | addC . 9 | (mulC . (exl . exr . exl *** exr . exr) . dup *** 10 | mulC . (exr . exr . exl *** exl . exr) . dup) . 11 | dup) . 12 | dup) . 13 | ((id *** repr . exr . exr . exl) . dup) . 14 | ((id *** repr . exl . exr) . dup) . dup) . 15 | exl *** 16 | exr) . 17 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2x-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2x-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2x-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2x-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2x-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2x-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2xx-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2xx-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2xx-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2xx-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2xx-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-2xx-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | cosC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** 5 | abst . 6 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 7 | dup) *** 8 | cosC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . 7 | abst . 8 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 9 | dup) *** 10 | cosC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c14 [label="{{}|cos|{}}"] 11 | c15 [label="{{}|sin|{}}"] 12 | c16 [label="{{}|negate|{}}"] 13 | c26 [label="{{|}|Out}"] 14 | c0:Out0 -> c14:In0 [label="Double"] 15 | c0:Out0 -> c15:In0 [label="Double"] 16 | c15:Out0 -> c16:In0 [label="Double"] 17 | c14:Out0 -> c26:In0 [label="Double"] 18 | c16:Out0 -> c26:In1 [label="Double"] 19 | } 20 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . 9 | abst . 10 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 11 | dup) *** 12 | cosC) . 13 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-xpy-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-xpy-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-xpy-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | apply . 15 | ((curry 16 | ((exr *** 17 | abst . 18 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 19 | dup) *** 20 | cosC) . 21 | dup) . 22 | exl) . 23 | dup) . 24 | (addC *** abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-xpy-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cos-xpy-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-xpy-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | apply . 23 | ((curry 24 | ((exr *** 25 | abst . 26 | abst . 27 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 28 | dup) *** 29 | cosC) . 30 | dup) . 31 | exl) . 32 | dup) . 33 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-xpy-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_xpy_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c63 [label="{{}|cos|{}}"] 12 | c64 [label="{{}|sin|{}}"] 13 | c65 [label="{{}|negate|{}}"] 14 | c119 [label="{{||}|Out}"] 15 | c0:Out0 -> c1:In0 [label="Double"] 16 | c0:Out1 -> c1:In1 [label="Double"] 17 | c1:Out0 -> c63:In0 [label="Double"] 18 | c1:Out0 -> c64:In0 [label="Double"] 19 | c64:Out0 -> c65:In0 [label="Double"] 20 | c63:Out0 -> c119:In0 [label="Double"] 21 | c65:Out0 -> c119:In1 [label="Double"] 22 | c65:Out0 -> c119:In2 [label="Double"] 23 | } 24 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cos-xpy-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | apply . 25 | ((curry 26 | ((exr *** 27 | abst . 28 | abst . 29 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 30 | dup) *** 31 | cosC) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cosSinProd-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/cosSinProd-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/cosSinProd-syn.golden: -------------------------------------------------------------------------------- 1 | ((cosC *** sinC) . dup) . mulC -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/dup-dot.golden: -------------------------------------------------------------------------------- 1 | digraph dup { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | c0:Out0 -> c1:In1 [label="Double"] 13 | } 14 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/dup-syn.golden: -------------------------------------------------------------------------------- 1 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/fst-dot.golden: -------------------------------------------------------------------------------- 1 | digraph fst { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | } 13 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/fst-syn.golden: -------------------------------------------------------------------------------- 1 | exl -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/horner-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/horner-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/horner-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | (const 1.0 *** 3 | mulC . 4 | (id *** 5 | addC . 6 | (const 3.0 *** 7 | mulC . 8 | (id *** addC . (const 5.0 *** mulC . (id *** const 0.0) . dup) . dup) . 9 | dup) . 10 | dup) . 11 | dup) . 12 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/log-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/log-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/log-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | logC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/magSqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/magSqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/magSqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/magSqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/magSqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/magSqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/magSqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/magSqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/magSqr-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | ((mulC . ((exl *** exl) . dup) . exr *** mulC . ((exr *** exr) . dup) . exr) . 3 | dup) . 4 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sin-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/sin-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sin-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 5 | dup) *** 6 | sinC) . 7 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sin-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/sin-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sin-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 7 | dup) *** 8 | sinC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sin-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph sin_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c12 [label="{{}|sin|{}}"] 11 | c13 [label="{{}|cos|{}}"] 12 | c22 [label="{{|}|Out}"] 13 | c0:Out0 -> c12:In0 [label="Double"] 14 | c0:Out0 -> c13:In0 [label="Double"] 15 | c12:Out0 -> c22:In0 [label="Double"] 16 | c13:Out0 -> c22:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sin-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 9 | dup) *** 10 | sinC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/sqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((mulC *** 15 | apply . 16 | ((coerce . 17 | curry 18 | (curry (addC . apply) . 19 | apply . 20 | (curry 21 | (curry 22 | ((apply . (exl . exl *** exl . exr) . dup *** 23 | apply . (exr . exl *** exr . exr) . dup) . 24 | dup)) . 25 | repr . exl *** 26 | repr . exr) . 27 | dup) . 28 | abst . curry mulC . exr . exr *** 29 | abst . curry mulC . exl . exr) . 30 | dup) . 31 | dup) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/sqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((mulC *** 23 | apply . 24 | ((coerce . 25 | curry 26 | (apply . 27 | (coerce . 28 | curry (apply . (exl *** repr . exr) . dup) . 29 | curry 30 | (curry 31 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 32 | repr . 33 | apply . 34 | (coerce . 35 | curry (apply . (exl *** repr . exr) . dup) . 36 | curry 37 | (curry 38 | ((apply . (exl . exl *** exl . exr) . dup *** 39 | apply . (exr . exl *** exr . exr) . dup) . 40 | dup)) . 41 | repr . repr . exl *** 42 | repr . exr) . 43 | dup *** 44 | abst . curry (dup . exr)) . 45 | dup) . 46 | abst . abst . curry mulC . exr . exr *** 47 | abst . abst . curry mulC . exl . exr) . 48 | dup) . 49 | dup) . 50 | dup) . 51 | exl) . 52 | dup) . 53 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/sqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/sqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/sqr-syn.golden: -------------------------------------------------------------------------------- 1 | mulC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/twice-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((addC *** abst . curry (addC . exr)) . dup) . exl) . 15 | dup) . 16 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/twice-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 23 | dup) . 24 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c2 [label="{{}|Out}"] 12 | c0:Out0 -> c1:In0 [label="Double"] 13 | c0:Out0 -> c1:In1 [label="Double"] 14 | c1:Out0 -> c2:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c53 [label="{{|}|+|{}}"] 11 | c101 [label="{2.0|{}}"] 12 | c102 [label="{{|}|Out}"] 13 | c0:Out0 -> c53:In0 [label="Double"] 14 | c0:Out0 -> c53:In1 [label="Double"] 15 | c53:Out0 -> c102:In0 [label="Double"] 16 | c101:Out0 -> c102:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 25 | dup) . 26 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/twice-syn.golden: -------------------------------------------------------------------------------- 1 | addC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/xp3y-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.1/xp3y-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.1/xp3y-syn.golden: -------------------------------------------------------------------------------- 1 | addC . ((exl . exr *** mulC . (const 3.0 *** exr . exr) . dup) . dup) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/add-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-adf-syn.golden: -------------------------------------------------------------------------------- 1 | (addC *** id . repr . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/add-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/add-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c5 [label="{1.0|{}}"] 12 | c6 [label="{{||}|Out}"] 13 | c0:Out0 -> c1:In0 [label="Double"] 14 | c0:Out1 -> c1:In1 [label="Double"] 15 | c1:Out0 -> c6:In0 [label="Double"] 16 | c5:Out0 -> c6:In1 [label="Double"] 17 | c5:Out0 -> c6:In2 [label="Double"] 18 | } 19 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | (addC *** id . repr . abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-syn.golden: -------------------------------------------------------------------------------- 1 | curry addC -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-uncurry-dot.golden: -------------------------------------------------------------------------------- 1 | digraph add_uncurry { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c5 [label="{{|}|+|{}}"] 11 | c6 [label="{{}|Out}"] 12 | c0:Out0 -> c5:In0 [label="Double"] 13 | c0:Out1 -> c5:In1 [label="Double"] 14 | c5:Out0 -> c6:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/add-uncurry-syn.golden: -------------------------------------------------------------------------------- 1 | apply . (curry addC . exl *** exr) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/complex-mul-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/complex-mul-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/complex-mul-syn.golden: -------------------------------------------------------------------------------- 1 | apply . 2 | (curry 3 | (abst . 4 | ((subC . 5 | (mulC . (exl . exr . exl *** exl . exr) . dup *** 6 | mulC . (exr . exr . exl *** exr . exr) . dup) . 7 | dup *** 8 | addC . 9 | (mulC . (exl . exr . exl *** exr . exr) . dup *** 10 | mulC . (exr . exr . exl *** exl . exr) . dup) . 11 | dup) . 12 | dup) . 13 | ((id *** repr . exr . exr . exl) . dup) . 14 | ((id *** repr . exl . exr) . dup) . dup) . 15 | exl *** 16 | exr) . 17 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2x-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2x-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2x-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2x-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2x-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2x-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2xx-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2xx-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2xx-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2xx-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2xx-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-2xx-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | cosC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** 5 | abst . 6 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 7 | dup) *** 8 | cosC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . 7 | abst . 8 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 9 | dup) *** 10 | cosC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c14 [label="{{}|cos|{}}"] 11 | c15 [label="{{}|sin|{}}"] 12 | c16 [label="{{}|negate|{}}"] 13 | c26 [label="{{|}|Out}"] 14 | c0:Out0 -> c14:In0 [label="Double"] 15 | c0:Out0 -> c15:In0 [label="Double"] 16 | c15:Out0 -> c16:In0 [label="Double"] 17 | c14:Out0 -> c26:In0 [label="Double"] 18 | c16:Out0 -> c26:In1 [label="Double"] 19 | } 20 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . 9 | abst . 10 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 11 | dup) *** 12 | cosC) . 13 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-xpy-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-xpy-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-xpy-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | apply . 15 | ((curry 16 | ((exr *** 17 | abst . 18 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 19 | dup) *** 20 | cosC) . 21 | dup) . 22 | exl) . 23 | dup) . 24 | (addC *** abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-xpy-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cos-xpy-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-xpy-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | apply . 23 | ((curry 24 | ((exr *** 25 | abst . 26 | abst . 27 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 28 | dup) *** 29 | cosC) . 30 | dup) . 31 | exl) . 32 | dup) . 33 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-xpy-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph cos_xpy_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c63 [label="{{}|cos|{}}"] 12 | c64 [label="{{}|sin|{}}"] 13 | c65 [label="{{}|negate|{}}"] 14 | c119 [label="{{||}|Out}"] 15 | c0:Out0 -> c1:In0 [label="Double"] 16 | c0:Out1 -> c1:In1 [label="Double"] 17 | c1:Out0 -> c63:In0 [label="Double"] 18 | c1:Out0 -> c64:In0 [label="Double"] 19 | c64:Out0 -> c65:In0 [label="Double"] 20 | c63:Out0 -> c119:In0 [label="Double"] 21 | c65:Out0 -> c119:In1 [label="Double"] 22 | c65:Out0 -> c119:In2 [label="Double"] 23 | } 24 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cos-xpy-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | apply . 25 | ((curry 26 | ((exr *** 27 | abst . 28 | abst . 29 | curry mulC . apply . (curry exl . negateC . sinC . exl *** exr) . dup) . 30 | dup) *** 31 | cosC) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (addC *** abst . abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cosSinProd-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/cosSinProd-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/cosSinProd-syn.golden: -------------------------------------------------------------------------------- 1 | ((cosC *** sinC) . dup) . mulC -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/dup-dot.golden: -------------------------------------------------------------------------------- 1 | digraph dup { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | c0:Out0 -> c1:In1 [label="Double"] 13 | } 14 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/dup-syn.golden: -------------------------------------------------------------------------------- 1 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/fst-dot.golden: -------------------------------------------------------------------------------- 1 | digraph fst { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{|}}"] 10 | c1 [label="{{}|Out}"] 11 | c0:Out0 -> c1:In0 [label="Double"] 12 | } 13 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/fst-syn.golden: -------------------------------------------------------------------------------- 1 | exl -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/horner-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/horner-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/horner-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | (const 1.0 *** 3 | mulC . 4 | (id *** 5 | addC . 6 | (const 3.0 *** 7 | mulC . 8 | (id *** addC . (const 5.0 *** mulC . (id *** const 0.0) . dup) . dup) . 9 | dup) . 10 | dup) . 11 | dup) . 12 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/log-2xx-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/log-2xx-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/log-2xx-syn.golden: -------------------------------------------------------------------------------- 1 | logC . mulC . (mulC . (const 2.0 *** id) . dup *** id) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/magSqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/magSqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/magSqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/magSqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/magSqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/magSqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/magSqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/magSqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/magSqr-syn.golden: -------------------------------------------------------------------------------- 1 | addC . 2 | ((mulC . ((exl *** exl) . dup) . exr *** mulC . ((exr *** exr) . dup) . exr) . 3 | dup) . 4 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/maximum-derf.golden: -------------------------------------------------------------------------------- 1 | (7.0,2.0) -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/maximum-derr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [7.0,7.0,7.0,7.0,7.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/maximum-gradr.golden: -------------------------------------------------------------------------------- 1 | (7.0,Vector [1.0,1.0,1.0,1.0,1.0]) -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sin-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/sin-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sin-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | (curry 4 | ((exr *** abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 5 | dup) *** 6 | sinC) . 7 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sin-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/sin-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sin-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | (curry 5 | ((exr *** 6 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 7 | dup) *** 8 | sinC) . 9 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sin-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph sin_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c12 [label="{{}|sin|{}}"] 11 | c13 [label="{{}|cos|{}}"] 12 | c22 [label="{{|}|Out}"] 13 | c0:Out0 -> c12:In0 [label="Double"] 14 | c0:Out0 -> c13:In0 [label="Double"] 15 | c12:Out0 -> c22:In0 [label="Double"] 16 | c13:Out0 -> c22:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sin-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | (curry 7 | ((exr *** 8 | abst . abst . curry mulC . apply . (curry exl . cosC . exl *** exr) . dup) . 9 | dup) *** 10 | sinC) . 11 | dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/sqr-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((mulC *** 15 | apply . 16 | ((coerce . 17 | curry 18 | (curry (addC . apply) . 19 | apply . 20 | (curry 21 | (curry 22 | ((apply . (exl . exl *** exl . exr) . dup *** 23 | apply . (exr . exl *** exr . exr) . dup) . 24 | dup)) . 25 | repr . exl *** 26 | repr . exr) . 27 | dup) . 28 | abst . curry mulC . exr . exr *** 29 | abst . curry mulC . exl . exr) . 30 | dup) . 31 | dup) . 32 | dup) . 33 | exl) . 34 | dup) . 35 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/sqr-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((mulC *** 23 | apply . 24 | ((curry 25 | (abst . 26 | apply . 27 | (coerce . 28 | curry (apply . (exl *** repr . exr) . dup) . 29 | curry 30 | (curry 31 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 32 | repr . 33 | apply . 34 | (coerce . 35 | curry (apply . (exl *** repr . exr) . dup) . 36 | curry 37 | (curry 38 | ((apply . (exl . exl *** exl . exr) . dup *** 39 | apply . (exr . exl *** exr . exr) . dup) . 40 | dup)) . 41 | repr . repr . exl *** 42 | repr . exr) . 43 | dup *** 44 | abst . curry (dup . exr)) . 45 | dup) . 46 | abst . abst . curry mulC . exr . exr *** 47 | abst . abst . curry mulC . exl . exr) . 48 | dup) . 49 | dup) . 50 | dup) . 51 | exl) . 52 | dup) . 53 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/sqr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-gradr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/sqr-gradr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/sqr-syn.golden: -------------------------------------------------------------------------------- 1 | mulC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-adf-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/twice-adf-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-adf-syn.golden: -------------------------------------------------------------------------------- 1 | second (id . repr) . 2 | apply . 3 | ((curry 4 | ((exl . exr *** 5 | apply . 6 | (coerce . 7 | curry (apply . (exl *** repr . exr) . dup) . 8 | curry 9 | (curry (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 10 | repr . exr . exr *** 11 | exr . exl) . 12 | dup) . 13 | dup) *** 14 | ((addC *** abst . curry (addC . exr)) . dup) . exl) . 15 | dup) . 16 | (dup *** abst . curry (dup . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-adr-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/twice-adr-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-adr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** repr . exr . id) . dup) . 2 | second (id . repr) . 3 | apply . 4 | ((curry 5 | ((exl . exr *** 6 | apply . 7 | (coerce . 8 | curry 9 | (apply . 10 | (coerce . 11 | curry (apply . (exl *** repr . exr) . dup) . 12 | curry 13 | (curry 14 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 15 | repr . repr . exr *** 16 | repr . exl) . 17 | dup) . 18 | exr . exr *** 19 | exr . exl) . 20 | dup) . 21 | dup) *** 22 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 23 | dup) . 24 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c1 [label="{{|}|+|{}}"] 11 | c2 [label="{{}|Out}"] 12 | c0:Out0 -> c1:In0 [label="Double"] 13 | c0:Out0 -> c1:In1 [label="Double"] 14 | c1:Out0 -> c2:In0 [label="Double"] 15 | } 16 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-gradr-dot.golden: -------------------------------------------------------------------------------- 1 | digraph twice_gradr { 2 | margin=0 3 | compound=true 4 | rankdir=LR 5 | node [shape=Mrecord] 6 | edge [fontsize=8,fontcolor=indigo] 7 | bgcolor=transparent 8 | nslimit=20 9 | c0 [label="{In|{}}"] 10 | c53 [label="{{|}|+|{}}"] 11 | c101 [label="{2.0|{}}"] 12 | c102 [label="{{|}|Out}"] 13 | c0:Out0 -> c53:In0 [label="Double"] 14 | c0:Out0 -> c53:In1 [label="Double"] 15 | c53:Out0 -> c102:In0 [label="Double"] 16 | c101:Out0 -> c102:In1 [label="Double"] 17 | } 18 | -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-gradr-syn.golden: -------------------------------------------------------------------------------- 1 | ((exl . id *** 2 | apply . ((repr . exr *** const 1.0) . dup) . (id *** exr . id) . dup) . 3 | dup) . 4 | second (id . repr) . 5 | apply . 6 | ((curry 7 | ((exl . exr *** 8 | apply . 9 | (coerce . 10 | curry 11 | (apply . 12 | (coerce . 13 | curry (apply . (exl *** repr . exr) . dup) . 14 | curry 15 | (curry 16 | (apply . (exl . exl *** apply . (exr . exl *** exr) . dup) . dup)) . 17 | repr . repr . exr *** 18 | repr . exl) . 19 | dup) . 20 | exr . exr *** 21 | exr . exl) . 22 | dup) . 23 | dup) *** 24 | ((addC *** abst . abst . curry (dup . exr)) . dup) . exl) . 25 | dup) . 26 | (dup *** abst . abst . curry (addC . exr)) . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/twice-syn.golden: -------------------------------------------------------------------------------- 1 | addC . dup -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/xp3y-dot.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compiling-to-categories/concat/7aa7d5ebe165161b7c0aafb8af006020534eaf70/plugin/test/gold/9.4.8/xp3y-dot.golden -------------------------------------------------------------------------------- /plugin/test/gold/9.4.8/xp3y-syn.golden: -------------------------------------------------------------------------------- 1 | addC . ((exl . exr *** mulC . (const 3.0 *** exr . exr) . dup) . dup) . dup -------------------------------------------------------------------------------- /plugin/test/gold/Makefile: -------------------------------------------------------------------------------- 1 | 2 | %.pdf: %-dot.golden Makefile 3 | dot -Tpdf -Gmargin=0 -Gcharset=latin1 -Gsize=10,10 $< -o $@ 4 | -------------------------------------------------------------------------------- /sandbox/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /sandbox/test/natnorm.hs: -------------------------------------------------------------------------------- 1 | -- Exercise the ghc-typelits-natnormalize package. 2 | 3 | {-# OPTIONS_GHC -Wall #-} 4 | {-# OPTIONS_GHC -fdefer-type-errors #-} 5 | {-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise #-} 6 | 7 | {-# LANGUAGE DataKinds #-} 8 | {-# LANGUAGE TypeOperators #-} 9 | 10 | import Data.Proxy 11 | import GHC.TypeLits 12 | 13 | proxyFun6 :: Proxy (2^k) -> Proxy (2^k) 14 | proxyFun6 = const Proxy 15 | 16 | test1 :: Proxy 7 17 | test1 = proxyFun6 (Proxy :: Proxy 7) 18 | 19 | test2 :: Proxy 8 20 | test2 = proxyFun6 (Proxy :: Proxy 8) 21 | 22 | main :: IO () 23 | main = do 24 | putStrLn "" 25 | putStrLn $ show test1 26 | putStrLn $ show test2 27 | 28 | -------------------------------------------------------------------------------- /sandbox/test/so_BoolHasFin.hs: -------------------------------------------------------------------------------- 1 | -- SO test case, re: my HasFin instance for Bool. 2 | -- 3 | -- David Banas 4 | -- February 9, 2018 5 | 6 | {-# OPTIONS_GHC -Wall #-} 7 | 8 | {-# LANGUAGE DataKinds #-} 9 | {-# LANGUAGE FlexibleContexts #-} 10 | {-# LANGUAGE LambdaCase #-} 11 | {-# LANGUAGE TypeFamilies #-} 12 | 13 | module Bogus.BoolHasFin where 14 | 15 | import GHC.TypeLits 16 | import Data.Finite.Internal (Finite(..)) 17 | 18 | class KnownNat (Card a) => HasFin a where 19 | type Card a :: Nat 20 | toFin :: a -> Finite (Card a) 21 | unFin :: Finite (Card a) -> a 22 | 23 | instance HasFin Bool where 24 | type Card Bool = 2 25 | 26 | toFin False = Finite 0 27 | toFin True = Finite 1 28 | 29 | unFin (Finite 0) = False 30 | unFin _ = True 31 | 32 | -------------------------------------------------------------------------------- /sandbox/test/so_natnorm.hs: -------------------------------------------------------------------------------- 1 | -- SO test case, re: my use of ghc-typelits-natnormalise package. 2 | -- 3 | -- David Banas 4 | -- February 9, 2018 5 | 6 | {-# OPTIONS_GHC -Wall #-} 7 | {-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise #-} 8 | 9 | {-# LANGUAGE DataKinds #-} 10 | {-# LANGUAGE GADTs #-} 11 | {-# LANGUAGE RankNTypes #-} 12 | {-# LANGUAGE TypeOperators #-} 13 | 14 | module Bogus.NewFin where 15 | 16 | import GHC.TypeLits 17 | import Data.Proxy 18 | import Data.Finite 19 | import Data.Finite.Internal (Finite(..)) 20 | import Data.Reflection 21 | 22 | -- A safer form of `finite`. 23 | finite' :: (KnownNat n, KnownNat m, n `CmpNat` m ~ 'GT) => Proxy m -> Finite n 24 | finite' p = Finite $ natVal p 25 | 26 | -- A safer form of `getFinite`. 27 | getFinite' :: KnownNat n => Finite n -> (forall m. (KnownNat m, n `CmpNat` m ~ 'GT) => Proxy m -> r) -> r 28 | getFinite' x f = reifyNat (getFinite x) f 29 | 30 | -------------------------------------------------------------------------------- /satisfy/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /satisfy/concat-satisfy.cabal: -------------------------------------------------------------------------------- 1 | name: concat-satisfy 2 | version: 0.1.0.0 3 | cabal-version: >=1.18 4 | synopsis: GHC plugin for forcing constraint satisfaction 5 | description: GHC plugin for forcing constraint satisfaction 6 | Category: categories 7 | license: BSD3 8 | author: Conal Elliott 9 | maintainer: conal@conal.net 10 | Copyright: (c) 2018 by Conal Elliott 11 | build-type: Simple 12 | 13 | source-repository head 14 | type: git 15 | location: git://github.com/conal/concat 16 | 17 | library 18 | default-language: Haskell2010 19 | hs-source-dirs: src 20 | include-dirs: src 21 | build-depends: base >=4.9 22 | , ghc >= 8.0.1 23 | , syb >= 0.6 24 | , concat-inline 25 | ghc-options: -O2 26 | exposed-modules: 27 | ConCat.Simplify 28 | ConCat.BuildDictionary 29 | ConCat.Satisfy 30 | ConCat.Satisfy.Plugin 31 | 32 | -------------------------------------------------------------------------------- /satisfy/src/ConCat/Satisfy.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE TypeApplications #-} 2 | {-# LANGUAGE ScopedTypeVariables #-} 3 | {-# LANGUAGE ConstraintKinds #-} 4 | {-# LANGUAGE RankNTypes #-} 5 | {-# LANGUAGE AllowAmbiguousTypes #-} 6 | 7 | {-# OPTIONS_GHC -Wall #-} 8 | {-# OPTIONS_GHC -Wno-unused-imports #-} -- TEMP 9 | 10 | -- | Magic function interface to ConCat.Satisfy.Plugin 11 | 12 | module ConCat.Satisfy where 13 | 14 | -- | Magic function to satisfy a constraint. Requires -fplugin=ConCat.Satisfy.Plugin to work. 15 | satisfy :: forall c z. (c => z) -> z 16 | satisfy _ = error "satisfy: Use -fplugin=ConCat.Satisfy.Plugin" 17 | {-# NOINLINE [0] satisfy #-} 18 | 19 | -- The a argument contains a tuple of dictionary variables 20 | satisfy' :: forall ev c z. ev -> (c => z) -> z 21 | satisfy' _ _ = error "satisfy': Use -fplugin=ConCat.Satisfy.Plugin" 22 | {-# NOINLINE [0] satisfy' #-} 23 | 24 | satisfy1 :: forall c f a. (c f => f a) -> f a 25 | satisfy1 = satisfy @(c f) 26 | {-# INLINE satisfy1 #-} 27 | 28 | satisfy2 :: forall c f a b. (c f => f a b) -> f a b 29 | satisfy2 = satisfy @(c f) 30 | {-# INLINE satisfy2 #-} 31 | -------------------------------------------------------------------------------- /stack.yaml: -------------------------------------------------------------------------------- 1 | flags: {} 2 | packages: 3 | - inline 4 | - known 5 | - satisfy 6 | - classes 7 | - plugin 8 | - examples 9 | - graphics 10 | - hardware 11 | #- sandbox 12 | extra-deps: 13 | # Extra packages 14 | - git: https://github.com/ku-fpg/netlist 15 | commit: 0f50a9cfd947885cac7fc392a5295cffe0b3ac31 16 | subdirs: 17 | - netlist 18 | - verilog 19 | - netlist-to-verilog 20 | 21 | # The next three provide instances for GHC.Generics 22 | - pointed-5.0.1 23 | - keys-3.12.1 24 | - adjunctions-4.4 25 | - z3-4.3.1 # for the SMT category 26 | - vector-sized-1.1.1.0 # for GHC 8.6 27 | # - indexed-list-literals-0.1.0.1 28 | - indexed-list-literals-0.2.1.2 29 | - ghc-typelits-knownnat-0.6 30 | - ghc-typelits-natnormalise-0.6.2 31 | - newtype-generics-0.5.3 32 | - language-glsl-0.3.0 33 | - NumInstances-1.4 34 | 35 | # resolver: lts-9.21 # ghc-8.0.2 36 | # resolver: lts-11.22 # ghc-8.2.2 37 | # resolver: lts-12.14 # ghc-8.4.3 38 | # resolver: lts-12.19 # ghc-8.4.4 39 | # resolver: lts-13.0 # ghc-8.6.3 40 | # resolver: lts-13.13 # ghc-8.6.4 41 | # resolver: lts-14.6 # ghc-8.6.5 42 | 43 | resolver: lts-16.12 44 | 45 | ## Work-around for several version incompatibilities with GHC 8.8.1 46 | allow-newer: true 47 | --------------------------------------------------------------------------------