Principles of Programming Languages - Robert Harper

This page summarizes the projects mentioned and recommended in the original post on /r/haskell

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • ghc-proposals

    Proposed compiler and language changes for GHC and GHC/Haskell

    I tried it out and it is really not usable yet unfortunately. There are several problems. I think the main issue is that you need two versions of all functions and data types. And currently classes like Num are not levity-polymorphic (there is a proposal about this), so you can't use + to add two "real" inductive peano naturals. One problem with making type classes levity-polymorphic is that top-level bindings can't be levity-polymorphic, so mempty cannot be levity-polymorphic. A workaround is to use a type class to levitate levity-polymorphic variables, but that has disadvantages too. Levitated values are not shared and must be recomputed at every call site.

  • unboxed

    experimenting with unlifted classes via backpack

    I tried it out and it is really not usable yet unfortunately. There are several problems. I think the main issue is that you need two versions of all functions and data types. And currently classes like Num are not levity-polymorphic (there is a proposal about this), so you can't use + to add two "real" inductive peano naturals. One problem with making type classes levity-polymorphic is that top-level bindings can't be levity-polymorphic, so mempty cannot be levity-polymorphic. A workaround is to use a type class to levitate levity-polymorphic variables, but that has disadvantages too. Levitated values are not shared and must be recomputed at every call site.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • typing

    Python static typing home. Hosts the documentation and a user help forum.

    How do you define Python? If you include PEP 484 in your definition, surely it must be 'statically typed', otherwise there would be no need for these terms.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts