1. camlspotter
  2. camlspotter.bitbucket.org


camlspotter.bitbucket.org / hacks.html

<!DOCTYPE html>

    <meta charset='utf-8' />
    <meta http-equiv="X-UA-Compatible" content="chrome=1" />
    <meta name="description" content="Caml Spotting : " />

    <link rel="stylesheet" type="text/css" media="screen" href="/stylesheets/stylesheet.css">
    <link href="/feed" rel="alternate" title="Caml Spotting Feed" type="application/rss+xml">



    <!-- HEADER -->
    <div id="header_wrap" class="outer">
        <header class="inner">
          <h1 id="project_title"><a href="/" style="color: #fff">Caml Spotting</a></h1>
          <h2 id="project_tagline">OCaml programmer using Haskell at work</h2>

    <!-- MAIN CONTENT -->

    <div id="main_content_wrap" class="outer">
      <section id="main_content" class="inner">

      <h1 id="hacks">Hacks</h1>

<p>Most of my hacks are available at <a href="http://bitbucket.org/camlspotter">BitBucket</a>.</p>

<h2 id="caml-hacks">Caml hacks</h2>

<p>My hacks are mainly in <a href="http://www.ocaml.org">OCaml</a> programming language.
Some of my stable libraries and applications are available at 
<a href="http://opam.ocamlpro.com">OPAM</a> repostiory.</p>

  <dt><a href="https://bitbucket.org/camlspotter/ocamlspot">OCamlSpotter</a></dt>
  <dd>OCaml compiler tool for source code browsing, including definition search and type inspection.</dd>
  <dt><a href="https://bitbucket.org/camlspotter/meta_conv">Meta-conv</a></dt>
  <dd>Meta conv is a framework over type-conv, which provides an easier way to auto-generate decoder and encoder between OCaml data types and various tree form data such as JSON, XML, Sexp, etc.</dd>
  <dt><a href="https://camlspotter:bitbucket19haskell@bitbucket.org/camlspotter/tiny_json_conv">Tiny-json-conv</a></dt>
  <dd>Meta conv for JSON</dd>
  <dt><a href="https://camlspotter:bitbucket19haskell@bitbucket.org/camlspotter/planck">Planck</a></dt>
  <dd>A small monadic parser combinator library. Parser LANguage Combinator Kit A LL(n) parser monadic combinator library in OCaml. It is small but could parse OCaml language perfectly.</dd>
  <dt><a href="https://bitbucket.org/camlspotter/omake-mode">OMake-mode</a></dt>
  <dd>Emacs mode for OMake -P</dd>
  <dt><a href="https://bitbucket.org/camlspotter/camlimages">CamlImages</a></dt>
  <dd>OCaml library for manupilating bitmap images</dd>
  <dt><a href="https://bitbucket.org/camlspotter/orakuda">ORakuda</a></dt>
  <dd>P4 extension for Perl like strings, i.e., <code>"hello $name"</code>, <code>/[a-z]+/</code>, <code>`ls *.ml`</code>.</dd>
  <dt>CamlP4 lexer plugin patch</dt>
  <dd>A small patch to plug lexer modifications into CamlP4. Included in <a href="https://bitbucket.org/camlspotter/orakuda">ORakuda</a>.</dd>
  <dt><a href="https://bitbucket.org/camlspotter/opycaml">( ゚∀゚)o彡°O’PyCaml</a></dt>
  <dd>Yet another OCaml-Python interface. It uses OCaml’s structural polymorphism for more type-safety.</dd>
  <dt>OCaml annot patch</dt>
  <dd>A small compiler patch enables automatic <code>.annot</code> and <code>.cmt*</code> annoation file creation. Available as one of OPAM compiler variation.</dd>
  <dd>OCaml compiler extension for non-parametric polymorphism (i.e. overloading)</dd>
  <dd>OCaml compiler extension for dictionary dispatching (i.e. Haskell like overloading)</dd>
  <dd>Server side plug-in infrustructure in OCaml for VALVe source engine games</dd>
  <dd>Japanese friendly OCaml</dd>

<h2 id="haskell-related">Haskell related</h2>

  <dt>Offside trap</dt>
  <dd>Extend haskell-indent/haskell-indentation mode for Emacs from per-line basis to block basis.</dd>


   <div id="disqus_thread" class="inner"></div>
    <script type="text/javascript">
        var disqus_shortname = 'camlspotting'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>


    <!-- FOOTER  -->
    <div id="footer_wrap" class="outer">
      <footer class="inner">
        <p>Published with ...</p>