Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design #2

Open
shelby3 opened this issue Jun 8, 2017 · 4 comments
Open

Design #2

shelby3 opened this issue Jun 8, 2017 · 4 comments

Comments

@shelby3
Copy link
Owner

shelby3 commented Jun 8, 2017

Block-level (Promise integrated) block-level deterministic RAII-like destructors:

keean/zenscript#14 (comment)
keean/zenscript#33 (comment) & keean/zenscript#33 (comment)

(design pattern possible in TypeScript, but the boilerplate reduction, correctness checking, and automated deployment can’t be obtained without transpilation)


Not supporting weak nor strong references:

keean/zenscript#32 (comment)

@shelby3
Copy link
Owner Author

shelby3 commented Jun 8, 2017

Anonymous structurally typed, type-indexed-tagged, partial-order-disjointed sums (aka unions):

#1 (comment)

(inherent feature of TypeScript)

@shelby3
Copy link
Owner Author

shelby3 commented Jun 8, 2017

Typeclasses or perhaps applicative ML functors (although perhaps we prefer to start with manual dependency injection):

#1 (comment)

(design pattern possible in TypeScript, but the implicit resolution boilerplate reduction and ambiguity checking can’t be obtained without transpilation)


Not supporting the undesirable premature binding of interface to data anti-pattern of virtual subclassing, often lumped into the term OOP:

keean/zenscript#14

Interestingly note that Typeclasses are compatible with JavaScript’s prototype inheritance (because only one way of implementing each interface for each data type); whereas, subclassing is not compatible.

@shelby3
Copy link
Owner Author

shelby3 commented Jun 9, 2017

Sized, signed, and unsigned integer (including 64-bit) types; additionally unboxed data structures which are optimally packed binary data suitable for I/O and memory intensive use cases:

keean/zenscript#30 (comment)
keean/zenscript#30 (comment) thru keean/zenscript#30 (comment)
keean/zenscript#30 (comment) thru keean/zenscript#30 (comment)
keean/zenscript#30 (comment)

(design pattern possible in TypeScript via customized APIs, but the boilerplate reduction and fastest performance on packed binary data can’t be obtained without transpilation)

@shelby3
Copy link
Owner Author

shelby3 commented Dec 2, 2018

Collecting all the prior posts or discussions about HKT:

keean/zenscript#27 (comment)
keean/zenscript#17 (comment)
keean/zenscript#10
https://typelevel.org/blog/2016/08/21/hkts-moving-forward.html
keean/zenscript#8 (comment) (c.f. footnote 1)

Also collecting all the prior posts or discussions about type classes:

keean/zenscript#39 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant