Skip to content

Effects: Pikelet should actually be useful! #93

@brendanzab

Description

@brendanzab

At the moment Pikelet doe not do anything useful. In order to be more useful, we probably need some form of way to perform effects.

Initially we could use an Io : Type -> Type wrapper type for this.

Eventually I would like us to move to something like an algebraic effect system. The limiting factor for this would be that it must be zero-cost. ie. We need to make sure that any reification of effects can be erased or partially evaluated away at compile time in a reliable way. This should result in codegen identical to if one had written code in an imperative language.

Resources

yallop/effects-bibliography has lots of links.

Here are some papers that are more specifically about integrating dependent types and effects:

  • D. Ahman, Handling Fibred Algebraic Effects. (Paper, Agda code)
  • D. Ahman, N. Ghani, G. Plotkin. Dependent Types and Fibred Computational Effects. (Paper)
  • Y. Cong, K. Asai, Handling Delimited Continuations with Dependent Types (Paper, Video)
  • C. McBride. Do be do be do. (Paper)
  • E. Miquey. A Classical Sequent Calculus with Dependent Types (Paper)
  • F. Nielson, H. R. Nielson. Type and Effect Systems. (Paper)
  • P.-M. Pédrot. Taming Effects in a Dependent World (Slides)
  • P.-M. Pédrot, N. Tabareau. Failure is Not an Option: An Exceptional Type Theory. (Paper, Slides)
  • A. Rossberg. 1ML with Special Effects: F-ing Generativity Polymorphism. (Paper)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions