# Saturday May 26th

## GSoC and RustReach Day 13

## May Day Convoluted

- Phil gave a talk similar to his DOM talk, but he interestingly mentioned a few papers, including Day’s Convolution and Arthur Xavier’s Comonads/UI thesis
- Cofree meets Comonads
- The dual of substitution is redecoration - Uustala and Vene

## Notes

- (Nate’s talk)
- I actually understood a lot of it! :D It was more beginner-friendly, and on reusable code.
- Reusable Code
- Generalization of functions
- type v class..typeclass
- using
`=>`

compiler takes care of implementation `Apply`

makes functor composable for any implementation of Functor- Final encoding (provide implementation as argument)
- Initial encoding (interpret a result)
`Aff`

is opaque: you have to run it to get what it contains (ie not reusable)- How can we make it reusable?
- Datatype that represents semantics of
`Aff`

```
Data RealCode
= ReadFile String
| WriteFile String String
| HttpGet String
vs
...ReadFile String (Maybe String -> a)
...WriteFile String String (Unit -> a)
...HttpGet String (String -> a)
| Done a
```

`~>`

is a natural transformation- extensible datatypes let you combine types without boiler plate (lends themselves to more reusable code)

## Rust

- I met with my mentor today. He was in Paris at the RustConf there, so our internet was a bit spotty, but he really helped me with understanding Traits. My mission this week is to continue from chapter 11
- traits: a way to share methods between two structs
- passing traits : IO
- Hash keys
- Key has to implement Hash
- I’ve been told that by next week, it’s sort of Discovery, where I see what issues I’d like to fix. Neat!

## Back to May Day Convoluted

- Chris B.
- ontology: how do we define identity? Using Category Theory for ontological relationships

## Andrew

- Monoids on Steroids
- 1942: Category theory invented
- 1958: Lisp invented
- 1983: Symbolics
- Lisp machines: latent typing, tagged architecture
- XML: typed S expressions (closing tag has to be enforced)
- Bill Gospher
- Julia sets

Written on May 26, 2018