Jane Street logo
  • Home
  • All Posts
  • Authors Index
  • Jane Street
  • Subscribe to email updates
  • Featured Reads

    • Read more

      Posts about interviewing at Jane Street and our internship program


    • Read more

      Using ASCII waveforms to test hardware designs


    • Read more

      Finding memory leaks with Memtrace

  • Tags
    • async
    • book
    • c
    • camlp4
    • code-review
    • comments
    • compiler
    • core
    • hackerschool
    • hg
    • incremental
    • internship
    • interviewing
    • ocaml
    • parallel-programming
    • performance
    • ppx
    • real-world-ocaml
    • registers
    • speed
    • ui
  • Get the RSS feed
  • Join Our Team
Jane Street logo
Sep 23, 2008 | 6 min read

A Working Programmer's Guide to Type-Indexed Values

Parametric polymorphism is a basic mechanism in ML for writing code that is generic, i.e., that can be used on multiple different types. To get...

By: Yaron Minsky
Sep 17, 2008 | 2 min read

Centralizing distributed version control

We switched over to using Mercurial about a year and a half ago (from tla/baz–don’t ask), and it’s worked out quite well for us. One...

By: Yaron Minsky
Sep 03, 2008 | 2 min read

Building a better compare

In a recent post, I described some of the problems associated with OCaml’s built in polymorphic comparison functions. So, if you want to avoid OCaml’s...

By: Yaron Minsky
Aug 27, 2008 | 1 min read

Ask and ye shall receive

At least, if you ask with a nicely detailed bug report. Looks like the missed optimization for equality on polymorphic variants I mentioned in a...

By: Yaron Minsky
Aug 18, 2008 | 2 min read

The perils of polymorphic compare

I have a love-hate relationship with OCaml’s polymorphic comparison functions, which I think I share with a lot of people who use the language. For...

By: Yaron Minsky
Aug 05, 2008 | 1 min read

Better float unboxing

A couple of months ago, Pascal noticed some missed optimizations in OCaml’s float unboxing optimizations. In some cases, code that looked like it should be...

By: Yaron Minsky
Jun 21, 2008 | 2 min read

Folding over fields

One of the best features of ML is pattern matching. Pattern matching is essentially a way of writing a case analysis driven by the structure...

By: Yaron Minsky
May 29, 2008 | 10 min read

The dangers of being too partial

This article deals with some not well-known dark corners of the OCaml compiler and how to get around them to produce more efficient code. The...

By: Pascal Zimmer
May 14, 2008 | 2 min read

Ensuring that a function is polymorphic

Here’s a little trick that I find useful when I get a type error due to a function that I believe is polymorphic, but isn’t...

By: Stephen Weeks
May 11, 2008 | 4 min read

Core Principles: uniformity of interface

This is intended to be the first in a series of posts talking about the design principles behind core, Jane Street’s alternative to OCaml’s standard...

By: Yaron Minsky
May 02, 2008 | 1 min read

Core has landed

We are proud to announce the first public release of `core`, Jane Street's own alternative to OCaml's standard library. We use this library as the...

By: Yaron Minsky
Apr 25, 2008 | 2 min read

using with type on a variant type

Here’s a type-checking problem I ran into today. I had a module with a variant type matching a signature that exposed the variant type.

By: Stephen Weeks
Apr 16, 2008 | 1 min read

OCaml Annoyance #23: type declarations are implicitly recursive

Unlike let declarations, type declarations in OCaml are automatically recursive. This seems harmless at first, but it actually causes more trouble than it’s worth. To...

By: Yaron Minsky
Apr 02, 2008 | 2 min read

The ML sweet spot

I just got back from visiting Northeastern and Harvard where I yet again flogged a version of my POPL talk. Olin Shivers was my host...

By: Yaron Minsky
Mar 26, 2008 | 1 min read

Bind without tears

One of the annoyances of using monads in OCaml is that the syntax is awkward. You can see why if you look at a simple...

By: Yaron Minsky
Mar 20, 2008 | 1 min read

Variable-argument functions

Here’s another puzzle:

By: Stephen Weeks
Mar 15, 2008 | 8 min read

Typing RPCs

At Jane Street, we end up writing lots of messaging protocols, and many of these protocols end up being simple RPC-style protocols, *i.e.*, protocols with...

By: Yaron Minsky
Mar 14, 2008 | 1 min read

Using let module for matching

In OCaml, referring to constructors defined in other modules can be somewhat awkward. Suppose we have a module like the following.

By: Stephen Weeks
11 12 13

Signals & Threads Podcast

Listen to the latest episode

Featured Tech Talk

The Algorithm for Precision Medicine

Jane Street YouTube Channel

Featured Reads


  • Read more

    Posts about interviewing at Jane Street and our internship program


  • Read more

    Using ASCII waveforms to test hardware designs


  • Read more

    Finding memory leaks with Memtrace

Tags

  • async
  • book
  • c
  • camlp4
  • code-review
  • comments
  • compiler
  • core
  • hackerschool
  • hg
  • incremental
  • internship
  • interviewing
  • ocaml
  • parallel-programming
  • performance
  • ppx
  • real-world-ocaml
  • registers
  • speed
  • ui

RSS

Get the RSS feed

Join Our Team

Jane Street
Where FP meets the real world.

If you're interested in working at a place where functional programming meets the real world, then apply for a job at Jane Street.

Learn more

  • Who We Are
  • What We Do
  • Client Offering
  • The Latest
  • Culture
  • Join Jane Street
  • Contact Us
Disclosures & Policies

© Copyright 2015-2023 Jane Street Group, LLC. All rights reserved. Services are provided in the U.S. by Jane Street Capital, LLC and Jane Street Execution Services, LLC, each of which is a SEC-registered broker dealer and member of FINRA (www.finra.org). Regulated activities are undertaken in Europe by Jane Street Financial Limited, an investment firm authorized and regulated by the U.K. Financial Conduct Authority, and Jane Street Netherlands B.V., an investment firm authorized and regulated by the Netherlands Authority for the Financial Markets (Autoriteit Financiële Markten), and in Hong Kong by Jane Street Hong Kong Limited, a regulated entity under the Hong Kong Securities and Futures Commission (CE No. BAL548). Each of these entities is a wholly owned subsidiary of Jane Street Group, LLC. This material is provided for informational purposes only and does not constitute an offer or solicitation for the purchase or sale of any security or other financial instrument. | Jane Street and the concentric circle mark are registered trademarks of Jane Street.

Privacy Cookies