The Comonad.Reader » Meta http://comonad.com/reader types, (co)monads, substructural logic Thu, 02 May 2013 14:19:12 +0000 http://wordpress.org/?v=2.8.4 en hourly 1 Wadler’s Law Revisited http://comonad.com/reader/2012/wadlers-law-revisited/ http://comonad.com/reader/2012/wadlers-law-revisited/#comments Mon, 02 Apr 2012 19:40:47 +0000 Edward Kmett http://comonad.com/reader/?p=571 In light of the burgeoning length of the ongoing record discussion sparked off by Simon Peyton-Jones in October, I would like to propose that we recognize an extension to Wadler's law (supplied in bold), which I'll refer to as the "Weak Record Conjecture" below.

In any language design, the total time spent discussing a feature in this list is proportional to two raised to the power of its position.

  • 0. Semantics
  • 1. Syntax
  • 2. Lexical syntax
  • 3. Lexical syntax of comments
  • 4. Semantics of records

I base the Weak Record Conjecture on the stable of proposed record semantics, which now includes (among others) Simple Overloaded Record Fields (SORF), Agda-derived Records (ADR), Frege-derived Records (FDR), Type-Punning Declared Overloaded Record Fields (TPDORF), Syntax Directed Name Resolution, Type Indexed Records and the less seriously proposed Homotopy Extensional Record Proposal (HERP) and Dependent Extensional Record Proposal (DERP).

There is an additional option implied but not stated in all of this, which is the option to "Leave Well Enough Alone" (LWEA?), since you can always Man Up and Learn Lenses (MUALL). Given that every record proposal I've seen thus far breaks polymorphic field updates to some degree, and lenses are going to be compatible with whatever mess folks settle on, even preserving the status quo, this is the path I've chosen to take.

Now, based on the fact that discussions of syntax have already started, and the intuition supplied by the ordering already present in Wadler's insightful law, I would also like to conjecture that perhaps an even stronger version of Wadler's law might be able to be stated, the "Strong Record Conjecture".

In any language design, the total time spent discussing a feature in this list is proportional to two raised to the power of its position.

  • 0. Semantics
  • 1. Syntax
  • 2. Lexical syntax
  • 3. Lexical syntax of comments
  • 4. Semantics of records
  • 5. Syntax of records
  • 6. Lexical syntax of records

Under the Strong Record Conjecture, even in the unlikely event that universal accord could be reached on record semantics today — 164 days into this discussion — we'd still be due for at least another 3 years (328 + 656 days) of backlogged complaining over the syntax before anything gets done.

The evidence thus far is pretty strong that at least the Weak Record Conjecture holds — if anything the exponent is too small and may require further calibration, but we don't have much data yet on the Strong Record Conjecture. Consequently, and in the name of science, I plan to check in again on the record debate in 3 years. Hopefully by then we will have resolved the remaining semantic issues, and will have a better feel for the necessary time commitment required to resolve items 5 and 6.

]]>
http://comonad.com/reader/2012/wadlers-law-revisited/feed/ 3
WikiPress http://comonad.com/reader/2006/wikipress/ http://comonad.com/reader/2006/wikipress/#comments Thu, 26 Oct 2006 23:22:56 +0000 Edward Kmett http://comonad.com/reader/2006/10/26/wiki-content-loaded/ I almost have the blog integrated with the old slipwave wiki content. I kludged something together to display it in WordPress. While I may add a flashy dynamic in-page loading feature like TiddlyWiki, for right now its functional and backwards compatible with my old content and gracefully degrades in the absence of javascript.

By way of example, you might try to view some Haskell source code.

This also might provide better context when I start to talk about things like continuations because I can link right inline to more extended static content.

This also provides me with a more convenient venue for static content than WordPress' default page management system.

Please, let me know if some bit of markup doesn't show up right.

]]>
http://comonad.com/reader/2006/wikipress/feed/ 0
Hello, World! http://comonad.com/reader/2006/hello-world/ http://comonad.com/reader/2006/hello-world/#comments Tue, 17 Oct 2006 23:03:01 +0000 Edward Kmett http://comonad.com/reader/2006/10/17/welcome/     import qualified Control.Comonad as Comonad import qualified Edward hiding (personal_details) import Blog.Software   -- Hello, World!   instance Blog Comonad.Reader where url = "http://comonad.com/reader" author = Edward.Kmett   main = forever $ post stuff  

Syntax highlighting works.

 \inference{}{\Gamma, x:\tau \vdash x:\tau}[var]

 \inference{\Gamma,x:\sigma \vdash M:\tau}{\Gamma \vdash \lambda x : \sigma. M : \sigma \rightarrow \tau}[abs]

 \inference{\Gamma \vdash M : \sigma \rightarrow \tau & \Gamma \vdash N:\sigma}{\Gamma \vdash M N : \tau}[app]

Apparently, \LaTeX works.

\bfig \square/>>`>`>` >->/[A`B`C`D;e`f`g`m] \morphism(500,500)|m|/.>/< -500,-500>[B`C;h] \efig

Commutative diagrams, check.

All systems go.

World, meet blog; blog, meet world.

]]>
http://comonad.com/reader/2006/hello-world/feed/ 1