<commit_before>---
layout: event

title: "Typelevel Summit Lausanne"
short_title: "Lausanne Summit"
date_string: "June 14, 2019"
location: "École Polytechnique Fédérale de Lausanne"
description: "One day of talks, co-located with the anniversary Scala Days."

poster_hero: "/img/media/lausanne.jpg"
poster_thumb: "/img/media/lausanne-thumb.jpg"

featured: true

sponsors_section: true

schedule:
  - time: "8:15"
    title: "Registration"
    break: true
  - time: "9:00"
    title: "Opening Remarks"
    break: true
  - time: "9:05"
    title: "Keynote"
    speakers: ["martinodersky"]
    summary: TBD
  - time: "10:00"
    title: "Break"
    break: true
  - time: "10:20"
    speakers: ["felixmulder"]
    title: "Brave New World - tales of PureScript and Haskell in production"
    summary: "The rumours are true. Writing code in purely functional languages tends to produce code that is much easier to read, modify and reason about. This talk examines how an experienced Scala team transitioned into writing production code using PureScript in AWS lambda, and services using Haskell."
  - time: "10:55"
    speakers: ["diesalbla"]
    title: "Actors Design Patterns and Arrowised FRP"
    summary: "Object-oriented design patterns combine basic language features to solve coding problems in an extensible way. In functional Scala, we solve those coding problems with functions, combinators, and type-classes, so design patterns are less relevant. Actor design patterns combine basic features of the actors to solve coding problems in an extensible way. Arrowised functional reactive programming (based on languages like Scala and Haskell also offers a way to solve those coding problem using functions, combinators, and type-classes. This talk describes a prototype implementation of AFRP and its primitive types and functions, discusses its similarities to actors, and then describes how some actor design patterns in the existing literature corresponds to constructions of AFRP."
  - time: "11:30"
    title: "Break"
    break: true
  - time: "11:45"
    speakers: ["buggymcbugfix"]
    title: "Taking Resources to the Type Level"
    summary: "With the Granule project, we are working towards making statically typed functional languages more resource-aware, hence providing a way to enforce stateful protocols regarding memory, file handles, network interaction, etc. Static enforcement of security policies and first-class support for multi-stage programming are further examples of what is possible in a type system based on Linear Logic and Graded Modalities. We present Granule, a functional programming language which combines parametric polymorphism and indexed types with such a type system. Granule programs will probably look very familiar to you, especially if you know some Haskell/ML, but in Granule’s type system we can reason about much more. Hillel Wayne’s Great Theorem Prover Showdown has made a point of the fact that there are many things we can’t easily reason about with functional (programming | proving)—up until now! We will implement leftPad in Granule and prove it correct with little more effort that writing the type signatures. We will then breeze through how Granule’s type system very naturally supports session-typed channels and safe mutable arrays."
  - time: "12:20"
    title: "Lunch Break at Le Parmentier"
    break: true
  - time: "13:45"
    speakers: ["denisrosset"]
    title: "Lord of the rings: the Spire numerical towers"
    summary: |
      <p>Spire defines around 80 typeclasses, including 30 coming from algebra and cats-kernel. We’ll see how much of that structure is dictated by mathematical laws, and which parts are the result of design decisions that balance different tradeoffs. In particular, we’ll discuss the different roles played by typeclasses in the Scala ecosystem:
      <ul>
        <li>as encoding operations obeying well-defined laws,</li>
        <li>as enabling the use of a particular syntax for those operations, if possible close to the mathematical notation of a domain (and subfields often disagree on the notation!),</li>
        <li>defining a context in which a combination of typeclasses implicitly imposes additional laws (for example, the ordering of numbers and addition),</li><commit_msg>Lausanne: keynote<commit_after>---
layout: event

title: "Typelevel Summit Lausanne"
short_title: "Lausanne Summit"
date_string: "June 14, 2019"
location: "École Polytechnique Fédérale de Lausanne"
description: "One day of talks, co-located with the anniversary Scala Days."

poster_hero: "/img/media/lausanne.jpg"
poster_thumb: "/img/media/lausanne-thumb.jpg"

featured: true

sponsors_section: true

schedule:
  - time: "8:15"
    title: "Registration"
    break: true
  - time: "9:00"
    title: "Opening Remarks"
    break: true
  - time: "9:05"
    title: "Keynote: Some Mistakes We Made When Designing Implicits (And Some Things We Got Right)"
    speakers: ["martinodersky"]
    summary: "We will talk about the history how Scala's implicits evolved, and about some of the mistakes we could have avoided in hindsight, but also about things that I believe we got right. I'll conclude with a presentation of revised implicits in Scala 3 which fixes most of the current problems and hopefully does not create too many new ones."
  - time: "10:00"
    title: "Break"
    break: true
  - time: "10:20"
    speakers: ["felixmulder"]
    title: "Brave New World - tales of PureScript and Haskell in production"
    summary: "The rumours are true. Writing code in purely functional languages tends to produce code that is much easier to read, modify and reason about. This talk examines how an experienced Scala team transitioned into writing production code using PureScript in AWS lambda, and services using Haskell."
  - time: "10:55"
    speakers: ["diesalbla"]
    title: "Actors Design Patterns and Arrowised FRP"
    summary: "Object-oriented design patterns combine basic language features to solve coding problems in an extensible way. In functional Scala, we solve those coding problems with functions, combinators, and type-classes, so design patterns are less relevant. Actor design patterns combine basic features of the actors to solve coding problems in an extensible way. Arrowised functional reactive programming (based on languages like Scala and Haskell also offers a way to solve those coding problem using functions, combinators, and type-classes. This talk describes a prototype implementation of AFRP and its primitive types and functions, discusses its similarities to actors, and then describes how some actor design patterns in the existing literature corresponds to constructions of AFRP."
  - time: "11:30"
    title: "Break"
    break: true
  - time: "11:45"
    speakers: ["buggymcbugfix"]
    title: "Taking Resources to the Type Level"
    summary: "With the Granule project, we are working towards making statically typed functional languages more resource-aware, hence providing a way to enforce stateful protocols regarding memory, file handles, network interaction, etc. Static enforcement of security policies and first-class support for multi-stage programming are further examples of what is possible in a type system based on Linear Logic and Graded Modalities. We present Granule, a functional programming language which combines parametric polymorphism and indexed types with such a type system. Granule programs will probably look very familiar to you, especially if you know some Haskell/ML, but in Granule’s type system we can reason about much more. Hillel Wayne’s Great Theorem Prover Showdown has made a point of the fact that there are many things we can’t easily reason about with functional (programming | proving)—up until now! We will implement leftPad in Granule and prove it correct with little more effort that writing the type signatures. We will then breeze through how Granule’s type system very naturally supports session-typed channels and safe mutable arrays."
  - time: "12:20"
    title: "Lunch Break at Le Parmentier"
    break: true
  - time: "13:45"
    speakers: ["denisrosset"]
    title: "Lord of the rings: the Spire numerical towers"
    summary: |
      <p>Spire defines around 80 typeclasses, including 30 coming from algebra and cats-kernel. We’ll see how much of that structure is dictated by mathematical laws, and which parts are the result of design decisions that balance different tradeoffs. In particular, we’ll discuss the different roles played by typeclasses in the Scala ecosystem:
      <ul>
        <li>as encoding operations obeying well-defined laws,</li>
        <li>as enabling the use of a particular syntax for those operations, if possible close to the mathematical notation of a domain (and subfields often disagree on the notation!),</li>
        <li>defining a context in which a combination of typeclasses implicitly imposes additional laws (for example, the ordering of numbers and addition),</li>
{'fraction_non_alphanumeric': 0.05860724233983287, 'fraction_numerical': 0.010584958217270195, 'mean_word_length': 4.365212193664076, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '232868', 'n_tokens_mistral': 2356, 'n_tokens_neox': 2208, 'n_words': 1215}