-
Recent Posts
- Modular Manipulation of the Link-Time Environment
- Why Not FFI
- Declarative State Machines
- Ad-Hoc External State Models
- Progress Report: Loops and Restarts in Sirea
- Objects as Dependently Typed Functions
- Anticipation in RDP Reduced
- Exponential Decay of History, Improved
- Sirea RDP Progress Update: Demand Monitors are Working
- Stateless Sound
Categories
Blogroll
- Lambda the Ultimate
- Duncan Cragg's What not How
- Portland Pattern Repository
- Manuel Simoni's Axis of Eval
- Haskell Reddit
- Rocketnia's Pipe Dreams
- Gilad Bracha's Room 101
- Bret Victor's Worrydream
- Roly Perera's Dynamic Aspects
- Gerold Meisinger's Lambdor Devblog
- Patai Gergely's Just _|_
- Dataspace Project
Meta
Category Archives: Types
Ad-Hoc External State Models
Encapsulation, Accessibility, Security One of the main reasons we encapsulate state is to gain more control over how it updates. For example, take your traditional, imperative, mutable state variables that respond to get and put actions. We might use one … Continue reading
Stone Soup Programming
Stone soup programming is meant to evoke an image of throwing software components into a pot – in no particular order, and paying little attention to the ingredients – and the result being a nice application. The glue code between … Continue reading
Exponential Decay of History
There are many problems for which it is useful to keep a history. A few examples of such problems: keep history of control-flow in an application for debugging purposes keep history of updates to a document for undo purposes keep … Continue reading
Posted in Language Design, Stability, State, Types, User Interface
3 Comments
Make for Haskell values, part alpha
…Make is a monad transformer… I commanded Google to search the web on my behalf for word of Dependency Injection in Haskell. I was disappointed to see only a few ruminations on using typeclasses. Inflexible, static, global typeclasses. Impenetrability! That’s … Continue reading
Freedom and Crutches in Language Design
Language designers aim to optimize an experience for their prospective users, but the criteria and heuristics by which they ‘optimize’ are widely varied and inconsistent (often within a single designer). In this article, I’ll present two common points of contention … Continue reading
Posted in Language Design, Types
19 Comments
Trouble with Typestate
If you are unfamiliar with it, typestate is a property explored by several new general purpose programming languages such as Plaid and Rust. The idea is to lift object states into the type system – i.e. initialization status, or whether … Continue reading
Posted in Language Design, Types
Leave a comment
Linear Types and RDP?
I’ve been thinking recently about how I might achieve linearity types for RDP. A type is ‘linear’ if it must be consumed at least once… and at most once. Linear types are very useful. They can be used to enforce … Continue reading
Posted in Language Design, Reactive Demand Programming, State, Types
2 Comments
Signals in RDP
Reactive Demand Programming (RDP) describes behavior as signal transformers, in continuous time, with side-effects. For example, I might push a control signal to a camera (to influence pan, zoom, tilt, and focus), and the camera will provide a response signal … Continue reading
Protect Your Semantics
A FIFO is a valid strategy to implement actors model, in the sense that it doesn’t violate any actors model semantics. But there are serious problems with using this strategy: developers will test their programs with it and never see … Continue reading
Posted in Language Design, Types
Leave a comment