Rohan Jacob-Rao, Andrae Muys, Max Swadling, Ben Lippmeier, Josh Meredith, Joshua Pratt
Rohan: Attended the EOS hackathon on the weekend. The task was to build something that helps the environment (on blockchain!). Ended up building a water quality monitoring system. Community water quality data is a good use case for distributed ledgers, as water quality affects everyone, but there is currently no open (and free) data provider.
Andrae: Mentioned that a similar natural use case for distributed ledgers is Uruguai’s system for managing land titles. The government is in flux, and they have a trust problem where records of title transfer sometimes get lost. Land title records are now being registered on the Bitcoin chain, where 1 satoshi transitions are added with extra data. Even during the December 2017 price spike, a transaction cost of ~27USD is not unreasonable for land title registration.
Max: Asked about whether new languages should be based around structural record and variant types, or nominal data types as per Haskell. The general consensus was that both are useful, as per the current situation in O’Caml. With only structural types it is hard to define mutually recursive data types, but with only nominal types it’s hard to express naturally open concepts, such as the set of exceptions thrown by a function. In O’Caml, exception handling is a prime use case for open variant types.
Josh M: Has been working towards supporting arbitrary algebraic data types in Accelerate. The system is now able to encode data types encoded as arrays and tuples, but currently a large number of type class instances need to be written by hand. Handling data types generically in the Accelerate is difficult due to the use of typed de Bruijn references in the AST representation. There may be a solution using GHC Generics, else Template Haskell is the fall-back option.
Ben: Merged the updated interface file framework into DDC master, and rewrote the DDC LLVM pretty printer to do direct write to file instead of going via a pretty printer library . Both of these changes combined reduced compile time for the ddc demos tests to about 35% of what it was originally. Also the reflection library working for function closures, so we now have a generic Debug.trace function that works for any value without the need for Show type class constraints as in Haskell. Has now started work on generic SHA256 hashing of values.
Next meeting is on 4th September.