News for hackers. Stuff that matters.
Re:Implementing a programming language in D: Lexical Analysis by jeremiep on Tuesday December 29, 2015 @12:46AM (#10805434)
I would probably do it like this in D (disclaimer: I haven't tested this code!)

  import std.typecons;
  import std.socket;
  import std.variant;

  struct Disconnected {}
  struct Connecting {}

  alias Connected = Typedef!(TcpSocket, null, "connected");
  alias Transferring = Typedef!(TcpSocket, null, "transferring");

  alias ConnState = Algebraic!(Disconnected, Connecting, Connected, Transferring);
You could use plain structs instead of the typedef template for the same result.

There are no comments on this comment yet.