Source code directory layout:

  doc/
    source_code.txt             - this file

  src/                          - source code

    mlton/                      - C interface files for MLton
      giraffe.h                 - header file generated by MLton from SML
      giraffe-gdk-3.0.c
      giraffe-glib-2.0.c
      giraffe-gobject-2.0.c
      giraffe-gtk-3.0.c
      giraffe-pango-1.0.c
      giraffe-vte-2.90.c

    polyml/                     - C interface files for Poly/ML
      giraffe-cairo-1.0.c
      giraffe-gdk-3.0.c
      giraffe-girepository-2.0.c
      giraffe-glib-2.0.c
      giraffe-gobject-2.0.c
      giraffe-gtk-3.0.c
      giraffe-pango-1.0.c
      giraffe-vte-2.90.c

    sml/
      polyml.sml                - just provides recursive use function

      general/
        mlton.mlb
        polyml.sml
        mlton/
        polyml/

      ffi/
        mlton.mlb
        polyml.sml
        mlton/
        polyml/

      <namespace>-<version>/    - SML namespace/version-specific directory
        mlton.mlb
        polyml.sml
        mlton/
        polyml/



Installation directory layout:

  lib/
    mlton/
      gcharvecveclib.la
      giraffe-gdk.la
      giraffe-glib.la
      giraffe-gobject.la
      giraffe-gtk.la
      giraffe-vte.la

    polyml/
      giraffe-cairo.so.1
      giraffe-gdk.so.1
      giraffe-girepository.so.1
      giraffe-glib.so.1
      giraffe-gobject.so.1
      giraffe-gtk.so.1
      giraffe-pango.so.1
      giraffe-vte.so.1

    sml/
      polyml.sml                - copy of src/sml/polyml.sml

      general/                  - copy of src/sml/general
        mlton.mlb
        polyml.sml
        mlton/
        polyml/

      ffi/                      - copy of src/sml/ffi
        mlton.mlb
        polyml.sml
        mlton/
        polyml/

      <namespace>-<version>/    - copy of src/sml/<namespace>-<version> if required
        mlton.mlb
        polyml.sml
        mlton/
        polyml/

  include/
    mlton/
      gcharptrffi.h
      gcharptrptrffi.h
      giraffe.h

