[icfp] skeleton
This commit is contained in:
parent
c5c5aba477
commit
6eac5828fc
7
icfp-2016/.gitignore
vendored
Normal file
7
icfp-2016/.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
*.aux
|
||||
*.bbl
|
||||
*.blg
|
||||
*.cls
|
||||
*.log
|
||||
*.out
|
||||
*.pdf
|
18
icfp-2016/Makefile
Normal file
18
icfp-2016/Makefile
Normal file
|
@ -0,0 +1,18 @@
|
|||
PAPER=paper
|
||||
|
||||
all: paper.pdf
|
||||
|
||||
compiled/paper_scrbl.zo: *.rkt *.scrbl
|
||||
raco make -v $(PAPER).scrbl
|
||||
|
||||
paper.pdf: pkg compiled/paper_scrbl.zo texstyle.tex
|
||||
scribble ++style texstyle.tex --pdf $(PAPER).scrbl
|
||||
|
||||
paper.tex: pkg compiled/paper_scrbl.zo texstyle.tex
|
||||
scribble ++style texstyle.tex --latex $(PAPER).scrbl
|
||||
|
||||
pkg:
|
||||
raco pkg install --skip-installed trivial
|
||||
|
||||
clean:
|
||||
rm -r compiled
|
1040
icfp-2016/bib.rkt
Normal file
1040
icfp-2016/bib.rkt
Normal file
File diff suppressed because it is too large
Load Diff
135
icfp-2016/common.rkt
Normal file
135
icfp-2016/common.rkt
Normal file
|
@ -0,0 +1,135 @@
|
|||
#lang at-exp racket/base
|
||||
|
||||
(provide (all-from-out "bib.rkt")
|
||||
(all-from-out scriblib/footnote)
|
||||
(all-from-out scriblib/figure)
|
||||
(all-from-out scribble/eval)
|
||||
(all-from-out scriblib/autobib)
|
||||
(except-out (all-from-out scribble/manual)
|
||||
author)
|
||||
~cite
|
||||
citet
|
||||
etal
|
||||
exact
|
||||
generate-bibliography
|
||||
nrightarrow
|
||||
parag
|
||||
sf
|
||||
id
|
||||
)
|
||||
|
||||
(require "bib.rkt"
|
||||
racket/class
|
||||
racket/require
|
||||
scribble/core
|
||||
scribble/eval
|
||||
scribble/manual
|
||||
scriblib/autobib
|
||||
scriblib/figure
|
||||
scriblib/footnote
|
||||
setup/main-collects
|
||||
scribble/html-properties
|
||||
scribble/latex-properties)
|
||||
|
||||
(define autobib-style-extras
|
||||
(let ([abs (lambda (s)
|
||||
(path->main-collects-relative
|
||||
(collection-file-path s "scriblib")))])
|
||||
(list
|
||||
(make-css-addition (abs "autobib.css"))
|
||||
(make-tex-addition (abs "autobib.tex")))))
|
||||
|
||||
(define bib-single-style (make-style "AutoBibliography" autobib-style-extras))
|
||||
|
||||
(define bibentry-style (make-style "Autobibentry" autobib-style-extras))
|
||||
(define colbibnumber-style (make-style "Autocolbibnumber" autobib-style-extras))
|
||||
(define colbibentry-style (make-style "Autocolbibentry" autobib-style-extras))
|
||||
|
||||
(define small-number-style
|
||||
(new
|
||||
(class object%
|
||||
(define/public (bibliography-table-style) bib-single-style)
|
||||
(define/public (entry-style) colbibentry-style)
|
||||
(define/public (disambiguate-date?) #f)
|
||||
(define/public (collapse-for-date?) #f)
|
||||
(define/public (get-cite-open) "[")
|
||||
(define/public (get-cite-close) "]")
|
||||
(define/public (get-group-sep) ", ")
|
||||
(define/public (get-item-sep) ", ")
|
||||
(define/public (render-citation date-cite i)
|
||||
(make-element
|
||||
(make-style "Thyperref" (list (command-extras (list (make-label i)))))
|
||||
(list (number->string i))))
|
||||
(define/public (render-author+dates author dates) dates)
|
||||
(define (make-label i)
|
||||
(string-append "autobiblab:" (number->string i)))
|
||||
(define/public (bibliography-line i e)
|
||||
(list (make-paragraph plain
|
||||
(make-element colbibnumber-style
|
||||
(list
|
||||
(make-element (make-style "label" null)
|
||||
(make-label i))
|
||||
"[" (number->string i) "]")))
|
||||
e))
|
||||
(super-new))))
|
||||
|
||||
(define author+date-style/link
|
||||
(new
|
||||
(class object%
|
||||
(define/public (bibliography-table-style) bib-single-style)
|
||||
(define/public (entry-style) bibentry-style)
|
||||
(define/public (disambiguate-date?) #t)
|
||||
(define/public (collapse-for-date?) #t)
|
||||
(define/public (get-cite-open) "(")
|
||||
(define/public (get-cite-close) ")")
|
||||
(define/public (get-group-sep) "; ")
|
||||
(define/public (get-item-sep) ", ")
|
||||
(define/public (render-citation date-cite i)
|
||||
(make-element
|
||||
(make-style "Thyperref" (list (command-extras (list (make-label i)))))
|
||||
date-cite))
|
||||
(define/public (render-author+dates author dates)
|
||||
(list* author " " dates))
|
||||
(define (make-label i)
|
||||
(string-append "autobiblab:" (number->string i)))
|
||||
(define/public (bibliography-line i e)
|
||||
(list (make-compound-paragraph
|
||||
plain
|
||||
(list (make-paragraph plain (list (make-element (make-style "label" null)
|
||||
(make-label i))))
|
||||
e))))
|
||||
(super-new))))
|
||||
|
||||
|
||||
(define-cite ~cite citet generate-bibliography
|
||||
;; change this to small-number-style if you want the other way
|
||||
#:style small-number-style
|
||||
)
|
||||
|
||||
(define etal "et al.")
|
||||
|
||||
(define nrightarrow (elem #:style "mynra"))
|
||||
|
||||
(define (sf x) (elem #:style "sfstyle" x))
|
||||
|
||||
(define (parag . x) (apply elem #:style "paragraph" x))
|
||||
|
||||
(define (exact . items)
|
||||
(make-element (make-style "relax" '(exact-chars))
|
||||
items))
|
||||
|
||||
(define (mt-line) (parag))
|
||||
|
||||
(define (def #:term (term #false) . x)
|
||||
(make-paragraph plain
|
||||
(list
|
||||
(mt-line)
|
||||
(bold "Definition")
|
||||
(cons (if term (element #f (list " (" (defterm term) ") ")) " ") x)
|
||||
(mt-line))))
|
||||
|
||||
;; Format an identifier
|
||||
;; Usage: @id[x]
|
||||
(define (id x)
|
||||
(make-element plain @format["~a" x]))
|
||||
|
5
icfp-2016/outline.scrbl
Normal file
5
icfp-2016/outline.scrbl
Normal file
|
@ -0,0 +1,5 @@
|
|||
#lang scribble/sigplan
|
||||
|
||||
@title{Outline}
|
||||
@; Applications
|
||||
|
25
icfp-2016/paper.scrbl
Normal file
25
icfp-2016/paper.scrbl
Normal file
|
@ -0,0 +1,25 @@
|
|||
#lang scribble/sigplan @onecolumn
|
||||
|
||||
@(require "common.rkt")
|
||||
|
||||
@authorinfo["Ben Greenman and Matthias Felleisen"
|
||||
"Northeastern University, Boston, USA"
|
||||
""]
|
||||
|
||||
@title{Functional Pearl: Do we @emph{really} need Dependent Types?}
|
||||
@; Trivial differences, little things that count
|
||||
@; Recall 'fexprs are trivial'?
|
||||
|
||||
@abstract{
|
||||
|
||||
}
|
||||
|
||||
@category["D.3.3" "Programming Languages" "Language Constructs and Features"]
|
||||
@terms{Performance, Experimentation, Measurement}
|
||||
@;@keywords{Gradual typing, performance evaluation}
|
||||
|
||||
@include-section{outline.scrbl}
|
||||
|
||||
@;@section[#:style 'unnumbered]{Acknowledgments}
|
||||
|
||||
@generate-bibliography[#:sec-title "References"]
|
578
icfp-2016/paper.tex
Normal file
578
icfp-2016/paper.tex
Normal file
|
@ -0,0 +1,578 @@
|
|||
\documentclass[onecolumn]{sigplanconf}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{times}
|
||||
\usepackage{qcourier}
|
||||
|
||||
\newcommand{\packageGraphicx}{\usepackage{graphicx}}
|
||||
\newcommand{\packageHyperref}{\usepackage{hyperref}}
|
||||
\newcommand{\renewrmdefault}{\renewcommand{\rmdefault}{ptm}}
|
||||
\newcommand{\packageRelsize}{\usepackage{relsize}}
|
||||
\newcommand{\packageMathabx}{\usepackage{mathabx}}
|
||||
% Avoid conflicts between "mathabx" and "wasysym":
|
||||
\newcommand{\packageWasysym}{
|
||||
\let\leftmoon\relax \let\rightmoon\relax \let\fullmoon\relax \let\newmoon\relax \let\diameter\relax
|
||||
\usepackage{wasysym}}
|
||||
\newcommand{\packageTextcomp}{\usepackage{textcomp}}
|
||||
\newcommand{\packageFramed}{\usepackage{framed}}
|
||||
\newcommand{\packageHyphenat}{\usepackage[htt]{hyphenat}}
|
||||
\newcommand{\packageColor}{\usepackage[usenames,dvipsnames]{color}}
|
||||
\newcommand{\doHypersetup}{\hypersetup{bookmarks=true,bookmarksopen=true,bookmarksnumbered=true}}
|
||||
\newcommand{\packageTocstyle}{\IfFileExists{tocstyle.sty}{\usepackage{tocstyle}\usetocstyle{standard}}{}}
|
||||
\newcommand{\packageCJK}{\IfFileExists{CJK.sty}{\usepackage{CJK}}{}}
|
||||
|
||||
% this bit intentionally left blank
|
||||
% This is the default style configuration for Scribble-generated Latex
|
||||
|
||||
\packageGraphicx
|
||||
\packageHyperref
|
||||
\renewrmdefault
|
||||
\packageRelsize
|
||||
\packageMathabx
|
||||
\packageWasysym
|
||||
\packageTextcomp
|
||||
\packageFramed
|
||||
\packageHyphenat
|
||||
\packageColor
|
||||
\doHypersetup
|
||||
\packageTocstyle
|
||||
\packageCJK
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Configuration that is especially meant to be overridden:
|
||||
|
||||
% Inserted before every ``chapter'', useful for starting each one on a new page:
|
||||
\newcommand{\sectionNewpage}{}
|
||||
% Inserted before every book ``part''
|
||||
\newcommand{\partNewpage}{\sectionNewpage}
|
||||
|
||||
% Hooks for actions within the `document' environment:
|
||||
\newcommand{\preDoc}{}
|
||||
\newcommand{\postDoc}{}
|
||||
|
||||
% Generated by `secref'; first arg is section number, second is section title:
|
||||
\newcommand{\BookRef}[2]{\emph{#2}}
|
||||
\newcommand{\ChapRef}[2]{\SecRef{#1}{#2}}
|
||||
\newcommand{\SecRef}[2]{section~#1}
|
||||
\newcommand{\PartRef}[2]{part~#1}
|
||||
% Generated by `Secref':
|
||||
\newcommand{\BookRefUC}[2]{\BookRef{#1}{#2}}
|
||||
\newcommand{\ChapRefUC}[2]{\SecRefUC{#1}{#2}}
|
||||
\newcommand{\SecRefUC}[2]{Section~#1}
|
||||
\newcommand{\PartRefUC}[2]{Part~#1}
|
||||
|
||||
% Variants of the above with a label for an internal reference:
|
||||
\newcommand{\BookRefLocal}[3]{\hyperref[#1]{\BookRef{#2}{#3}}}
|
||||
\newcommand{\ChapRefLocal}[3]{\hyperref[#1]{\ChapRef{#2}{#3}}}
|
||||
\newcommand{\SecRefLocal}[3]{\hyperref[#1]{\SecRef{#2}{#3}}}
|
||||
\newcommand{\PartRefLocal}[3]{\hyperref[#1]{\PartRef{#2}{#3}}}
|
||||
\newcommand{\BookRefLocalUC}[3]{\hyperref[#1]{\BookRefUC{#2}{#3}}}
|
||||
\newcommand{\ChapRefLocalUC}[3]{\hyperref[#1]{\ChapRefUC{#2}{#3}}}
|
||||
\newcommand{\SecRefLocalUC}[3]{\hyperref[#1]{\SecRefUC{#2}{#3}}}
|
||||
\newcommand{\PartRefLocalUC}[3]{\hyperref[#1]{\PartRefUC{#2}{#3}}}
|
||||
|
||||
% Variants of the above with a section number is empty (i.e., UnNumbered):
|
||||
\newcommand{\BookRefUN}[1]{\BookRef{}{#1}}
|
||||
\newcommand{\ChapRefUN}[1]{\SecRefUN{#1}}
|
||||
\newcommand{\SecRefUN}[1]{``#1''}
|
||||
\newcommand{\PartRefUN}[1]{\SecRefUN{#1}}
|
||||
\newcommand{\BookRefUCUN}[1]{\BookRefUN{#1}}
|
||||
\newcommand{\ChapRefUCUN}[1]{\ChapRefUN{#1}}
|
||||
\newcommand{\SecRefUCUN}[1]{\SecRefUN{#1}}
|
||||
\newcommand{\PartRefUCUN}[1]{\PartRefUN{#1}}
|
||||
|
||||
\newcommand{\BookRefLocalUN}[2]{\hyperref[#1]{\BookRefUN{#2}}}
|
||||
\newcommand{\ChapRefLocalUN}[2]{\SecRefLocalUN{#1}{#2}}
|
||||
\newcommand{\SecRefLocalUN}[2]{\SecRefUN{#2} on page~\pageref{#1}}
|
||||
\newcommand{\PartRefLocalUN}[2]{\SecRefLocalUN{#1}{#2}}
|
||||
\newcommand{\BookRefLocalUCUN}[2]{\BookRefLocalUN{#1}{#2}}
|
||||
\newcommand{\ChapRefLocalUCUN}[2]{\ChapRefLocalUN{#1}{#2}}
|
||||
\newcommand{\SecRefLocalUCUN}[2]{\SecRefLocalUN{#1}{#2}}
|
||||
\newcommand{\PartRefLocalUCUN}[2]{\PartRefLocalUN{#1}{#2}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Fonts
|
||||
|
||||
% Font commands used by generated text:
|
||||
\newcommand{\Scribtexttt}[1]{{\texttt{#1}}}
|
||||
\newcommand{\textsub}[1]{$_{\hbox{\textsmaller{#1}}}$}
|
||||
\newcommand{\textsuper}[1]{$^{\hbox{\textsmaller{#1}}}$}
|
||||
\newcommand{\intextcolor}[2]{\textcolor{#1}{#2}}
|
||||
\newcommand{\intextrgbcolor}[2]{\textcolor[rgb]{#1}{#2}}
|
||||
\newcommand{\incolorbox}[2]{{\fboxrule=0pt\fboxsep=0pt\colorbox{#1}{#2}}}
|
||||
\newcommand{\inrgbcolorbox}[2]{{\fboxrule=0pt\fboxsep=0pt\colorbox[rgb]{#1}{#2}}}
|
||||
\newcommand{\plainlink}[1]{#1}
|
||||
\newcommand{\techoutside}[1]{#1}
|
||||
\newcommand{\techinside}[1]{#1}
|
||||
\newcommand{\badlink}[1]{#1}
|
||||
\newcommand{\indexlink}[1]{#1}
|
||||
\newcommand{\noborder}[1]{#1}
|
||||
\newcommand{\Smaller}[1]{\textsmaller{#1}}
|
||||
\newcommand{\Larger}[1]{\textlarger{#1}}
|
||||
\newcommand{\planetName}[1]{PLane\hspace{-0.1ex}T}
|
||||
\newcommand{\slant}[1]{{\textsl{#1}}}
|
||||
|
||||
% Used for <, >, and | in tt mode. For some fonts and installations,
|
||||
% there seems to be an encoding issue, so pick T1 explicitly:
|
||||
\newcommand{\Stttextmore}{{\fontencoding{T1}\selectfont>}}
|
||||
\newcommand{\Stttextless}{{\fontencoding{T1}\selectfont<}}
|
||||
\newcommand{\Stttextbar}{{\fontencoding{T1}\selectfont|}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Tables
|
||||
|
||||
% The `stabular' environment seems to be the lesser of evils among
|
||||
% page-breaking table environments (and we've made a copy as ``pltstabular'
|
||||
% to make sure that it doesn't change).
|
||||
|
||||
\makeatletter
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\message{pltstabular is a modification of stabular}
|
||||
%% A renamed vsetion of:
|
||||
%% stabular.sty
|
||||
%% Copyright 1998 Sigitas Tolu\v sis
|
||||
%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania
|
||||
%% e-mail sigitas@vtex.lt
|
||||
%% http://www.vtex.lt/tex/download/macros/
|
||||
%%
|
||||
% This program can redistributed and/or modified under the terms
|
||||
% of the LaTeX Project Public License Distributed from CTAN
|
||||
% archives in directory macros/latex/base/lppl.txt; either
|
||||
% version 1 of the License, or (at your option) any later version.
|
||||
%
|
||||
% PURPOSE: Improve tabular environment.
|
||||
%
|
||||
% SHORT DESCRIPTION:
|
||||
%
|
||||
% Changed internal commands: \@mkpream, \@addamp, \@xhline
|
||||
%
|
||||
% Provides new commands in tabular (used after command \\):
|
||||
% \emptyrow[#1]
|
||||
% -------------
|
||||
% Adds empty row, #1 - height of the row
|
||||
%
|
||||
% \tabrow{#1}[#2]
|
||||
% ---------------
|
||||
% Adds row of natural height: #1\\[#2]
|
||||
%
|
||||
% Provides new environments: pltstabular and pltstabular*
|
||||
% -------- ---------
|
||||
% One more multi-page version of tabular
|
||||
%
|
||||
%
|
||||
\def\empty@finalstrut#1{%
|
||||
\unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\z@}
|
||||
\def\no@strut{\global\setbox\@arstrutbox\hbox{%
|
||||
\vrule \@height\z@
|
||||
\@depth\z@
|
||||
\@width\z@}%
|
||||
\gdef\@endpbox{\empty@finalstrut\@arstrutbox\par\egroup\hfil}%
|
||||
}%
|
||||
\def\yes@strut{\global\setbox\@arstrutbox\hbox{%
|
||||
\vrule \@height\arraystretch \ht\strutbox
|
||||
\@depth\arraystretch \dp\strutbox
|
||||
\@width\z@}%
|
||||
\gdef\@endpbox{\@finalstrut\@arstrutbox\par\egroup\hfil}%
|
||||
}%
|
||||
\def\@mkpream#1{\@firstamptrue\@lastchclass6
|
||||
\let\@preamble\@empty\def\empty@preamble{\add@ins}%
|
||||
\let\protect\@unexpandable@protect
|
||||
\let\@sharp\relax\let\add@ins\relax
|
||||
\let\@startpbox\relax\let\@endpbox\relax
|
||||
\@expast{#1}%
|
||||
\expandafter\@tfor \expandafter
|
||||
\@nextchar \expandafter:\expandafter=\reserved@a\do
|
||||
{\@testpach\@nextchar
|
||||
\ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
|
||||
\or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
|
||||
\ifcase \@lastchclass \@acol
|
||||
\or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi}
|
||||
\def\@addamp{%
|
||||
\if@firstamp
|
||||
\@firstampfalse
|
||||
\edef\empty@preamble{\add@ins}%
|
||||
\else
|
||||
\edef\@preamble{\@preamble &}%
|
||||
\edef\empty@preamble{\expandafter\noexpand\empty@preamble &\add@ins}%
|
||||
\fi}
|
||||
\newif\iftw@hlines \tw@hlinesfalse
|
||||
\def\@xhline{\ifx\reserved@a\hline
|
||||
\tw@hlinestrue
|
||||
\else\ifx\reserved@a\Hline
|
||||
\tw@hlinestrue
|
||||
\else
|
||||
\tw@hlinesfalse
|
||||
\fi\fi
|
||||
\iftw@hlines
|
||||
\aftergroup\do@after
|
||||
\fi
|
||||
\ifnum0=`{\fi}%
|
||||
}
|
||||
\def\do@after{\emptyrow[\the\doublerulesep]}
|
||||
\def\emptyrow{\noalign\bgroup\@ifnextchar[\@emptyrow{\@emptyrow[\z@]}}
|
||||
\def\@emptyrow[#1]{\no@strut\gdef\add@ins{\vrule \@height\z@ \@depth#1 \@width\z@}\egroup%
|
||||
\empty@preamble\\
|
||||
\noalign{\yes@strut\gdef\add@ins{\vrule \@height\z@ \@depth\z@ \@width\z@}}%
|
||||
}
|
||||
\def\tabrow#1{\noalign\bgroup\@ifnextchar[{\@tabrow{#1}}{\@tabrow{#1}[]}}
|
||||
\def\@tabrow#1[#2]{\no@strut\egroup#1\ifx.#2.\\\else\\[#2]\fi\noalign{\yes@strut}}
|
||||
%
|
||||
\def\endpltstabular{\crcr\egroup\egroup \egroup}
|
||||
\expandafter \let \csname endpltstabular*\endcsname = \endpltstabular
|
||||
\def\pltstabular{\let\@halignto\@empty\@pltstabular}
|
||||
\@namedef{pltstabular*}#1{\def\@halignto{to#1}\@pltstabular}
|
||||
\def\@pltstabular{\leavevmode \bgroup \let\@acol\@tabacol
|
||||
\let\@classz\@tabclassz
|
||||
\let\@classiv\@tabclassiv \let\\\@tabularcr\@stabarray}
|
||||
\def\@stabarray{\m@th\@ifnextchar[\@sarray{\@sarray[c]}}
|
||||
\def\@sarray[#1]#2{%
|
||||
\bgroup
|
||||
\setbox\@arstrutbox\hbox{%
|
||||
\vrule \@height\arraystretch\ht\strutbox
|
||||
\@depth\arraystretch \dp\strutbox
|
||||
\@width\z@}%
|
||||
\@mkpream{#2}%
|
||||
\edef\@preamble{%
|
||||
\ialign \noexpand\@halignto
|
||||
\bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
|
||||
\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
|
||||
\let\tabularnewline\\%
|
||||
% \let\par\@empty
|
||||
\let\@sharp##%
|
||||
\set@typeset@protect
|
||||
\lineskip\z@skip\baselineskip\z@skip
|
||||
\@preamble}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\makeatother
|
||||
|
||||
\newenvironment{bigtabular}{\begin{pltstabular}}{\end{pltstabular}}
|
||||
% For the 'boxed table style:
|
||||
\newcommand{\SBoxedLeft}{\textcolor[rgb]{0.6,0.6,1.0}{\vrule width 3pt\hspace{3pt}}}
|
||||
% Formerly used to keep the horizontal line for a definition on the same page:
|
||||
\newcommand{\SEndFirstHead}[0]{ \nopagebreak \\ }
|
||||
% Corrects weirdness when a table is the first thing in
|
||||
% an itemization:
|
||||
\newcommand{\bigtableinlinecorrect}[0]{~
|
||||
|
||||
\vspace{-\baselineskip}\vspace{\parskip}}
|
||||
% Used to indent the table correctly in an itemization, since that's
|
||||
% one of the things stabular gets wrong:
|
||||
\newlength{\stabLeft}
|
||||
\newcommand{\bigtableleftpad}{\hspace{\stabLeft}}
|
||||
\newcommand{\atItemizeStart}[0]{\addtolength{\stabLeft}{\labelsep}
|
||||
\addtolength{\stabLeft}{\labelwidth}}
|
||||
|
||||
|
||||
% For a single-column table in simple environments, it's better to
|
||||
% use the `list' environment instead of `stabular'.
|
||||
\newenvironment{SingleColumn}{\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
||||
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=0pt\rightmargin=0pt%
|
||||
\itemsep=0pt\parsep=0pt}\item}{\end{list}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Etc.
|
||||
|
||||
% ._ and .__
|
||||
\newcommand{\Sendabbrev}[1]{#1\@}
|
||||
\newcommand{\Sendsentence}[1]{\@#1}
|
||||
|
||||
% Default style for a nested flow:
|
||||
\newenvironment{Subflow}{\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
||||
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=0pt\rightmargin=0pt%
|
||||
\itemsep=0pt}\item}{\end{list}}
|
||||
|
||||
% For the 'inset nested-flow style:
|
||||
\newenvironment{SInsetFlow}{\begin{quote}}{\end{quote}}
|
||||
|
||||
% Indent a 'code-inset nested flow:
|
||||
\newcommand{\SCodePreSkip}{\vskip\abovedisplayskip}
|
||||
\newcommand{\SCodePostSkip}{\vskip\belowdisplayskip}
|
||||
\newenvironment{SCodeFlow}{\SCodePreSkip\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
||||
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=2ex\rightmargin=2ex%
|
||||
\itemsep=0pt\parsep=0pt}\item}{\end{list}\SCodePostSkip}
|
||||
\newcommand{\SCodeInsetBox}[1]{\setbox1=\hbox{\hbox{\hspace{2ex}#1\hspace{2ex}}}\vbox{\SCodePreSkip\vtop{\box1\SCodePostSkip}}}
|
||||
|
||||
% Inset a 'vertical-inset nested flow:
|
||||
\newcommand{\SVInsetPreSkip}{\vskip\abovedisplayskip}
|
||||
\newcommand{\SVInsetPostSkip}{\vskip\belowdisplayskip}
|
||||
\newenvironment{SVInsetFlow}{\SVInsetPreSkip\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
||||
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=0pt\rightmargin=0pt%
|
||||
\itemsep=0pt\parsep=0pt}\item}{\end{list}\SVInsetPostSkip}
|
||||
\newcommand{\SVInsetBox}[1]{\setbox1=\hbox{\hbox{#1}}\vbox{\SCodePreSkip\vtop{\box1\SCodePostSkip}}}
|
||||
|
||||
% The 'compact itemization style:
|
||||
\newenvironment{compact}{\begin{itemize}}{\end{itemize}}
|
||||
\newcommand{\compactItem}[1]{\item #1}
|
||||
|
||||
% The nested-flow style for `centerline':
|
||||
\newenvironment{SCentered}{\begin{trivlist}\item \centering}{\end{trivlist}}
|
||||
|
||||
% The \refpara command corresponds to `margin-note'. The
|
||||
% refcolumn and refcontent environments also wrap the note,
|
||||
% because they simplify the CSS side.
|
||||
\newcommand{\refpara}[1]{\normalmarginpar\marginpar{\raggedright \footnotesize #1}}
|
||||
\newcommand{\refelem}[1]{\refpara{#1}}
|
||||
\newenvironment{refcolumn}{}{}
|
||||
\newenvironment{refcontent}{}{}
|
||||
|
||||
\newcommand{\refparaleft}[1]{\reversemarginpar\marginpar{\raggedright \footnotesize #1}}
|
||||
\newcommand{\refelemleft}[1]{\refparaleft{#1}}
|
||||
\newenvironment{refcolumnleft}{}{}
|
||||
|
||||
% Macros used by `title' and `author':
|
||||
\newcommand{\titleAndVersionAndAuthors}[3]{\title{#1\\{\normalsize \SVersionBefore{}#2}}\author{#3}\maketitle}
|
||||
\newcommand{\titleAndVersionAndEmptyAuthors}[3]{\title{#1\\{\normalsize \SVersionBefore{}#2}}#3\maketitle}
|
||||
\newcommand{\titleAndEmptyVersionAndAuthors}[3]{\title{#1}\author{#3}\maketitle}
|
||||
\newcommand{\titleAndEmptyVersionAndEmptyAuthors}[3]{\title{#1}\maketitle}
|
||||
\newcommand{\SAuthor}[1]{#1}
|
||||
\newcommand{\SAuthorSep}[1]{\qquad}
|
||||
\newcommand{\SVersionBefore}[1]{Version }
|
||||
|
||||
% Useful for some styles, such as sigalternate:
|
||||
\newcommand{\SNumberOfAuthors}[1]{}
|
||||
|
||||
\let\SOriginalthesubsection\thesubsection
|
||||
\let\SOriginalthesubsubsection\thesubsubsection
|
||||
|
||||
% sections
|
||||
\newcommand{\Spart}[2]{\part[#1]{#2}}
|
||||
\newcommand{\Ssection}[2]{\section[#1]{#2}\let\thesubsection\SOriginalthesubsection}
|
||||
\newcommand{\Ssubsection}[2]{\subsection[#1]{#2}\let\thesubsubsection\SOriginalthesubsubsection}
|
||||
\newcommand{\Ssubsubsection}[2]{\subsubsection[#1]{#2}}
|
||||
\newcommand{\Ssubsubsubsection}[2]{{\bf #2}}
|
||||
\newcommand{\Ssubsubsubsubsection}[2]{\Ssubsubsubsection{#1}{#2}}
|
||||
|
||||
% "star" means unnumbered and not in ToC:
|
||||
\newcommand{\Spartstar}[1]{\part*{#1}}
|
||||
\newcommand{\Ssectionstar}[1]{\section*{#1}\renewcommand*\thesubsection{\arabic{subsection}}\setcounter{subsection}{0}}
|
||||
\newcommand{\Ssubsectionstar}[1]{\subsection*{#1}\renewcommand*\thesubsubsection{\arabic{section}.\arabic{subsubsection}}\setcounter{subsubsection}{0}}
|
||||
\newcommand{\Ssubsubsectionstar}[1]{\subsubsection*{#1}}
|
||||
\newcommand{\Ssubsubsubsectionstar}[1]{{\bf #1}}
|
||||
\newcommand{\Ssubsubsubsubsectionstar}[1]{\Ssubsubsubsectionstar{#1}}
|
||||
|
||||
% "starx" means unnumbered but in ToC:
|
||||
\newcommand{\Spartstarx}[2]{\Spartstar{#2}\addcontentsline{toc}{part}{#1}}
|
||||
\newcommand{\Ssectionstarx}[2]{\Ssectionstar{#2}\addcontentsline{toc}{section}{#1}}
|
||||
\newcommand{\Ssubsectionstarx}[2]{\Ssubsectionstar{#2}\addcontentsline{toc}{subsection}{#1}}
|
||||
\newcommand{\Ssubsubsectionstarx}[2]{\Ssubsubsectionstar{#2}\addcontentsline{toc}{subsubsection}{#1}}
|
||||
\newcommand{\Ssubsubsubsectionstarx}[2]{\Ssubsubsubsectionstar{#2}}
|
||||
\newcommand{\Ssubsubsubsubsectionstarx}[2]{\Ssubsubsubsubsectionstar{#2}}
|
||||
|
||||
% "grouper" is for the 'grouper style variant --- on subsections and lower,
|
||||
% because \Spart is used for grouper at the section level. Grouper implies
|
||||
% unnumbered.
|
||||
\newcounter{GrouperTemp}
|
||||
\newcommand{\Ssubsectiongrouper}[2]{\setcounter{GrouperTemp}{\value{subsection}}\Ssubsectionstarx{#1}{#2}\setcounter{subsection}{\value{GrouperTemp}}}
|
||||
\newcommand{\Ssubsubsectiongrouper}[2]{\setcounter{GrouperTemp}{\value{subsubsection}}\Ssubsubsectionstarx{#1}{#2}\setcounter{subsubsection}{\value{GrouperTemp}}}
|
||||
\newcommand{\Ssubsubsubsectiongrouper}[2]{\Ssubsubsubsectionstarx{#1}{#2}}
|
||||
\newcommand{\Ssubsubsubsubsectiongrouper}[2]{\Ssubsubsubsubsectionstarx{#1}{#2}}
|
||||
|
||||
\newcommand{\Ssubsectiongrouperstar}[1]{\setcounter{GrouperTemp}{\value{subsection}}\Ssubsectionstar{#1}\setcounter{subsection}{\value{GrouperTemp}}}
|
||||
\newcommand{\Ssubsubsectiongrouperstar}[1]{\setcounter{GrouperTemp}{\value{subsubsection}}\Ssubsubsectionstar{#1}\setcounter{subsubsection}{\value{GrouperTemp}}}
|
||||
\newcommand{\Ssubsubsubsectiongrouperstar}[1]{\Ssubsubsubsectionstar{#1}}
|
||||
\newcommand{\Ssubsubsubsubsectiongrouperstar}[1]{\Ssubsubsubsubsectionstar{#1}}
|
||||
|
||||
\newcommand{\Ssubsectiongrouperstarx}[2]{\setcounter{GrouperTemp}{\value{subsection}}\Ssubsectionstarx{#1}{#2}\setcounter{subsection}{\value{GrouperTemp}}}
|
||||
\newcommand{\Ssubsubsectiongrouperstarx}[2]{\setcounter{GrouperTemp}{\value{subsubsection}}\Ssubsubsectionstarx{#1}{#2}\setcounter{subsubsection}{\value{GrouperTemp}}}
|
||||
\newcommand{\Ssubsubsubsectiongrouperstarx}[2]{\Ssubsubsubsectionstarx{#1}{#2}}
|
||||
\newcommand{\Ssubsubsubsubsectiongrouperstarx}[2]{\Ssubsubsubsubsectionstarx{#1}{#2}}
|
||||
|
||||
% Generated by `subsubsub*section':
|
||||
\newcommand{\SSubSubSubSection}[1]{\Ssubsubsubsubsectionstar{#1}}
|
||||
|
||||
% For hidden parts with an empty title:
|
||||
\newcommand{\notitlesection}{\vspace{2ex}\phantomsection\noindent}
|
||||
|
||||
% To increments section numbers:
|
||||
\newcommand{\Sincpart}{\stepcounter{part}}
|
||||
\newcommand{\Sincsection}{\stepcounter{section}}
|
||||
\newcommand{\Sincsubsection}{\stepcounter{subsection}}
|
||||
\newcommand{\Sincsubsubsection}{\stepcounter{subsubsection}}
|
||||
\newcommand{\Sincsubsubsubsection}{}
|
||||
\newcommand{\Sincsubsubsubsubsection}{}
|
||||
|
||||
% When brackets appear in section titles:
|
||||
\newcommand{\SOpenSq}{[}
|
||||
\newcommand{\SCloseSq}{]}
|
||||
|
||||
% Helper for box-mode macros:
|
||||
\newcommand{\Svcenter}[1]{$\vcenter{#1}$}
|
||||
|
||||
% Helper to work around a problem with "#"s for URLs within \href
|
||||
% within other macros:
|
||||
\newcommand{\Shref}[3]{\href{#1\##2}{#3}}
|
||||
|
||||
% For URLs:
|
||||
\newcommand{\Snolinkurl}[1]{\nolinkurl{#1}}
|
||||
|
||||
% History note:
|
||||
\newcommand{\SHistory}[1]{\begin{smaller}#1\end{smaller}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
% Scribble then generates the following:
|
||||
%
|
||||
% \begin{document}
|
||||
% \preDoc
|
||||
% \titleAndVersion{...}{...}
|
||||
% ... document content ...
|
||||
% \postDoc
|
||||
% \end{document}
|
||||
|
||||
% Support for styles in scribble/sigplan
|
||||
|
||||
% These are replaced by scribble/sigplan/style.tex,
|
||||
% which is used in combination with sigplanconf.sty
|
||||
|
||||
\newcommand{\SAuthorinfo}[3]{#1}
|
||||
\newcommand{\SAuthorPlace}[1]{#1}
|
||||
\newcommand{\SAuthorEmail}[1]{#1}
|
||||
|
||||
\newcommand{\SConferenceInfo}[2]{}
|
||||
\newcommand{\SCopyrightYear}[1]{}
|
||||
\newcommand{\SCopyrightData}[1]{}
|
||||
\newcommand{\Sdoi}[1]{}
|
||||
\newcommand{\SPexclusivelicense}[0]{}
|
||||
|
||||
\newcommand{\SCategory}[3]{}
|
||||
\newcommand{\SCategoryPlus}[4]{}
|
||||
\newcommand{\STerms}[1]{}
|
||||
\newcommand{\SKeywords}[1]{}
|
||||
|
||||
% Normally gets re-written by the title macro:
|
||||
\newcommand{\SSubtitle}[1]{{\bf #1}}
|
||||
|
||||
\newenvironment{AutoBibliography}{\begin{small}}{\end{small}}
|
||||
\newcommand{\Autobibentry}[1]{\hspace{0.05\linewidth}\parbox[t]{0.95\linewidth}{\parindent=-0.05\linewidth#1\vspace{1.0ex}}}
|
||||
|
||||
\usepackage{calc}
|
||||
\newlength{\ABcollength}
|
||||
\newcommand{\Autocolbibnumber}[1]{\parbox[t]{5ex}{\hfill#1~~\vspace{1.0ex}}}
|
||||
\newcommand{\Autocolbibentry}[1]{\setlength{\ABcollength}{\linewidth-5ex}\parbox[t]{\ABcollength}{#1\vspace{1.0ex}}}
|
||||
|
||||
% Define \SXtitle to lift \SSubtitle out:
|
||||
\def\SXtitle#1{\title{\let\SSubtitle\SSubtitleDrop#1}\SExtractSubtitle#1\SExtractSubtitleDone}
|
||||
\def\SSubtitleDrop#1{}
|
||||
\def\SExtractSubtitleDone {}
|
||||
\def\SExtractSubtitle{\futurelet\next\SExtractSubtitleX}
|
||||
\def\SExtractSubtitleX#1{\ifx#1\SSubtitle \let\Snext\SWithSubtitle \else \let\Snext\SExtractSubtitleY \fi \Snext}
|
||||
\def\SExtractSubtitleY{\ifx\next\SExtractSubtitleDone \let\Snext\relax \else \let\Snext\SExtractSubtitle \fi \Snext}
|
||||
\def\SWithSubtitle#1{\subtitle{#1}\SExtractSubtitle}
|
||||
|
||||
\renewcommand{\titleAndVersionAndAuthors}[3]{\SXtitle{#1}#3\maketitle}
|
||||
\renewcommand{\titleAndEmptyVersionAndAuthors}[3]{\titleAndVersionAndAuthors{#1}{#2}{#3}}
|
||||
\renewcommand{\titleAndVersionAndEmptyAuthors}[3]{\SXtitle{#1}\authorinfo{Anonymous}{}{}\maketitle}
|
||||
\renewcommand{\titleAndEmptyVersionAndEmptyAuthors}[3]{\titleAndVersionAndEmptyAuthors{#1}{#2}{#3}}
|
||||
|
||||
% Support plain `author' while enabling `authorinfo': for each
|
||||
% use of \SAuthor, check whether it contains an \SAuthorinfo form:
|
||||
\def\SAuthor#1{\SAutoAuthor#1\SAutoAuthorDone{#1}}
|
||||
\def\SAutoAuthorDone#1{}
|
||||
\def\SAutoAuthor{\futurelet\next\SAutoAuthorX}
|
||||
\def\SAutoAuthorX{\ifx\next\SAuthorinfo \let\Snext\relax \else \let\Snext\SToAuthorDone \fi \Snext}
|
||||
\def\SToAuthorDone{\futurelet\next\SToAuthorDoneX}
|
||||
\def\SToAuthorDoneX#1{\ifx\next\SAutoAuthorDone \let\Snext\SAddAuthorInfo \else \let\Snext\SToAuthorDone \fi \Snext}
|
||||
\newcommand{\SAddAuthorInfo}[1]{\authorinfo{#1}{}{}}
|
||||
|
||||
\renewcommand{\SAuthorinfo}[3]{\authorinfo{#1}{#2}{#3}}
|
||||
\renewcommand{\SAuthorSep}[1]{}
|
||||
|
||||
\renewcommand{\SConferenceInfo}[2]{\conferenceinfo{#1}{#2}}
|
||||
\renewcommand{\SCopyrightYear}[1]{\copyrightyear{#1}}
|
||||
\renewcommand{\SCopyrightData}[1]{\copyrightdata{#1}}
|
||||
\renewcommand{\Sdoi}[1]{\doi{#1}}
|
||||
\renewcommand{\SPexclusivelicense}[0]{\exclusivelicense}
|
||||
|
||||
\renewcommand{\SCategory}[3]{\category{#1}{#2}{#3}}
|
||||
\renewcommand{\SCategoryPlus}[4]{\category{#1}{#2}{#3}[#4]}
|
||||
\renewcommand{\STerms}[1]{\terms{#1}}
|
||||
\renewcommand{\SKeywords}[1]{\keywords{#1}}
|
||||
|
||||
% A later \doi will replace this one:
|
||||
\doi{}
|
||||
% Better horizontal rules
|
||||
\usepackage{booktabs}
|
||||
|
||||
% Use Tikz (and other pkgs) for Ben's picture
|
||||
% xcolor MUST come first!!! https://en.wikibooks.org/wiki/LaTeX/Colors
|
||||
\usepackage[usenames,dvipsnames]{xcolor}
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{shapes.geometric}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{multicol}
|
||||
|
||||
% Override Scribble's default SecRef to numeric only
|
||||
\renewcommand{\SecRef}[2]{~#1}
|
||||
|
||||
\hypersetup{hidelinks}
|
||||
|
||||
\usepackage[scaled=0.95]{zi4}
|
||||
\usepackage[T1]{fontenc}
|
||||
|
||||
% For bib style
|
||||
\newcommand{\Thyperref}[2]{\hyperref[#2]{#1}}
|
||||
|
||||
% Disable hrule for figures
|
||||
\renewcommand{\Legend}[1]{~ \vspace{4pt} \legend{#1}}
|
||||
|
||||
%%% From Ben's treepict work
|
||||
|
||||
%% Import and print the pictures for a project
|
||||
%% Arguments:
|
||||
%% - Name of the project
|
||||
\newcommand{\pict}[1]{\begin{tabular}{c}\scalebox{0.6}{\input{module-graphs/#1}}\end{tabular}}
|
||||
|
||||
\newcommand{\rkt}[2]{$\bullet$}
|
||||
|
||||
%% To show overfull, turn off for production!!!
|
||||
\overfullrule=1mm
|
||||
|
||||
%% Artifact badge!
|
||||
\usepackage[firstpage]{draftwatermark}
|
||||
\SetWatermarkText{\hspace*{8in}\raisebox{7.0in}{\includegraphics[scale=0.1]{aec-badge-popl}}}
|
||||
\SetWatermarkAngle{0}
|
||||
|
||||
%% balance last page columns
|
||||
\usepackage{flushend}
|
||||
|
||||
%% for figure 2
|
||||
\let\ulcorner\relax
|
||||
\let\urcorner\relax
|
||||
\let\llcorner\relax
|
||||
\let\lrcorner\relax
|
||||
\usepackage{amssymb}
|
||||
\begin{document}
|
||||
\preDoc
|
||||
\titleAndEmptyVersionAndAuthors{Do we \textit{really} need Dependent Types?}{}{\SNumberOfAuthors{1}\SAuthor{\SAuthorinfo{Ben Greenman and Matthias Felleisen}{\SAuthorPlace{Northeastern University, Boston, USA}}{\SAuthorEmail{}}}}
|
||||
\label{t:x28part_x22Dox5fwex5freallyx5fneedx5fDependentx5fTypesx5fx22x29}
|
||||
|
||||
|
||||
|
||||
\begin{abstract}\end{abstract}
|
||||
|
||||
\SCategory{D.3.3}{Programming Languages}{Language Constructs and Features}
|
||||
\STerms{Performance, Experimentation, Measurement}
|
||||
|
||||
\sectionNewpage
|
||||
|
||||
\Ssection{Outline}{Outline}\label{t:x28part_x22Outlinex22x29}
|
||||
|
||||
|
||||
|
||||
\Ssubsection{Story}{Story}\label{t:x28part_x22Storyx22x29}
|
||||
|
||||
|
||||
|
||||
\Ssubsection{Applications}{Applications}\label{t:x28part_x22Applicationsx22x29}
|
||||
|
||||
|
||||
|
||||
\sectionNewpage
|
||||
|
||||
\Ssectionstarx{References}{References}\label{t:x28part_x22docx2dbibliographyx22x29}
|
||||
|
||||
\begin{AutoBibliography}\begin{SingleColumn}\end{SingleColumn}\end{AutoBibliography}
|
||||
|
||||
\postDoc
|
||||
\end{document}
|
29
icfp-2016/texstyle.tex
Normal file
29
icfp-2016/texstyle.tex
Normal file
|
@ -0,0 +1,29 @@
|
|||
% Better horizontal rules
|
||||
\usepackage{booktabs}
|
||||
|
||||
\usepackage[usenames,dvipsnames]{xcolor}
|
||||
\usepackage{multicol}
|
||||
|
||||
% Override Scribble's default SecRef to numeric only
|
||||
\renewcommand{\SecRef}[2]{~#1}
|
||||
|
||||
\hypersetup{hidelinks}
|
||||
|
||||
\usepackage[scaled=0.95]{zi4}
|
||||
\usepackage[T1]{fontenc}
|
||||
|
||||
% For bib style
|
||||
\newcommand{\Thyperref}[2]{\hyperref[#2]{#1}}
|
||||
|
||||
%% To show overfull, turn off for production!!!
|
||||
\overfullrule=1mm
|
||||
|
||||
%% balance last page columns
|
||||
\usepackage{flushend}
|
||||
|
||||
%% for figure 2
|
||||
\let\ulcorner\relax
|
||||
\let\urcorner\relax
|
||||
\let\llcorner\relax
|
||||
\let\lrcorner\relax
|
||||
\usepackage{amssymb}
|
Loading…
Reference in New Issue
Block a user