<reponame>ammkrn/catala<gh_stars>0
\documentclass[a3paper,landscape]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage{multicol}
\usepackage{bookman}
\usepackage{booktabs}
\usepackage{minted}

\pagestyle{empty}

\newcommand{\li}[1]{\texttt{#1}}
\begin{document}
\begin{center}
  2022-02-09
  \hfill
  {\Huge\bfseries\sffamily
    Catala Syntax Cheat Sheet}
  \hfill
  v.0.5.0
\end{center}
\hrule

\begin{multicols*}{2}

  \section*{Literate programming}
  \begin{center}
    \begin{tabular}{p{0.15\columnwidth}p{0.275\columnwidth}p{0.275\columnwidth}}
      \toprule
      Feature        & English syntax & French syntax \\\midrule
      Heading        &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
## Foo
### Bar
\end{minted}
      \vspace*{-1.75em}
                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
## Foo
### Bar
\end{minted}
      \vspace*{-1.75em}
      \\
      Code block     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
```
\end{minted}
      \vspace*{-1.75em}
                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Metadata block &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala-metadata
```
\end{minted}
      \vspace*{-1.75em}
                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala-metadata
```
\end{minted}
      \vspace*{-1.75em}
      \\
      File inclusion &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
> Include: foo.catala_en
\end{minted}
      \vspace*{-1.75em}
                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
> Inclusion: foo.catala_fr
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}
  \newcommand*\FancyVerbStartString{```catala}
  \newcommand*\FancyVerbStopString{```}














  \section*{Metadata declaration}
  \begin{tabular}{p{0.22\columnwidth}p{0.3\columnwidth}p{0.425\columnwidth}}
    \toprule
    Feature                 & English syntax & French syntax \\\midrule
    Structure declaration   &
    \vspace*{-1.75em}
    \begin{minted}{catala_en}
```catala
declaration structure Foo:
  data bar content integer
  data baz content boolean
```
\end{minted}
    \vspace*{-1.75em}
                            &
    \vspace*{-1.75em}
    \begin{minted}{catala_fr}
```catala
déclaration structure Foo:
  donnée bar contenu entier
  donnée baz contenu booléen
```
\end{minted}
    \vspace*{-1.75em}
    \\
    Enumeration declaration &
    \vspace*{-1.75em}
    \begin{minted}{catala_en}
```catala
declaration enumeration Foo:
  -- Bar content integer
  -- Baz
```
\end{minted}
    \vspace*{-1.75em}
                            &
    \vspace*{-1.75em}
    \begin{minted}{catala_fr}
```catala
déclaration énumeration Foo:
  -- Bar contenu entier
  -- Baz
```
\end{minted}
    \vspace*{-1.75em}                                        \\
    Scope declaration       &
    \vspace*{-1.75em}
    \begin{minted}{catala_en}
```catala
declaration scope Foo:
  internal bar content integer
  internal baz condition
  fizz scope Buzz
```
\end{minted}
    \vspace*{-1.75em}
                            &
    \vspace*{-1.75em}
    \begin{minted}{catala_fr}
```catala
déclaration champ d'application Foo:
  interne bar contenu entier
  interne baz condition
  contexte fizz champ d'application Buzz
```
\end{minted}
    \vspace*{-1.75em}                                        \\
    Input-output qualifiers &
    \vspace*{-1.75em}
    \begin{minted}{catala_en}
```catala
internal bar content ...
output baz content ...
input fizz content ...
input output buzz content ...
context biz content ...
context output boz content ...
```
\end{minted}
    \vspace*{-1.75em}
                            &
    \vspace*{-1.75em}
    \begin{minted}{catala_fr}
```catala
interne bar contenu ...
sortie baz contenu ...
entrée fizz contenu ...
entrée sortie buzz contenu ...
contexte biz contenu ...
contexte sortie boz contenu ...
```
\end{minted}
    \vspace*{-1.75em}                                        \\
    \bottomrule
  \end{tabular}











  \section*{Types}
  \begin{center}
    \begin{tabular}{p{0.175\columnwidth}p{0.2\columnwidth}p{0.2\columnwidth}}
      \toprule
      Feature          & English syntax & French syntax \\\midrule
      Natural integers &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
integer
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
entier
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Rational numbers &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
decimal
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
décimal
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Booleans         &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
boolean
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
booléen
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
money
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
argent
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Date             &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
date
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
date
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Duration         &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
duration
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
durée
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Function         &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
Foo depends on Bar
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
Foo dépend de Bar
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Collection       &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
collection Foo
```
\end{minted}
      \vspace*{-1.75em}
                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
collection Foo
```
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}





  \section*{Literals}
  \begin{center}
    \begin{tabular}{p{0.15\columnwidth}p{0.275\columnwidth}p{0.275\columnwidth}}
      \toprule
      Feature   & English syntax & French syntax \\\midrule
      Integers  &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
65536
```
\end{minted}
      \vspace*{-1.75em}
                &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
65536
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Decimals  &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
65536.262144
```
\end{minted}
      \vspace*{-1.75em}
                &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
65536.262144
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
$1,234,567.89
```
\end{minted}
      \vspace*{-1.75em}
                &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
1 234 567,89 €
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Date      &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
|2021-01-31|
```
\end{minted}
      \vspace*{-1.75em}
                &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
|2021-31-01|
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Durations &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
254 day  4 month  1 year
```
\end{minted}
      \vspace*{-1.75em}
                &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
254 jour  4 mois  1 an
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Boolean   &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
true    false
```
\end{minted}
      \vspace*{-1.75em}
                &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
vrai    faux
```
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}





  \section*{Scope use and related items}
  \begin{center}
    \begin{tabular}{p{0.22\columnwidth}p{0.35\columnwidth}p{0.35\columnwidth}}
      \toprule
      Feature                                 & English syntax & French syntax \\\midrule
      Scope use                               &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
scope Foo: ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
champ d'application Foo: ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Use-wide condition                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
scope Foo
  under condition bar: ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
champ d'application Foo
  sous condition bar: ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Unconditional definition                &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
definition foo equals ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
définition foo égal à ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Conditional definition                  &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
definition foo under condition
  bar consequence equals ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
définition foo sous condition
  bar conséquence égal à ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Rule\newline(definition for conditions) &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
rule foo under condition
  bar consequence fulfilled
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
règle foo sous condition
  bar conséquence rempli
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Negative rule                           &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
rule foo under condition
  bar consequence not fulfilled
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
règle foo sous condition
  bar conséquence non rempli
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Function definition/rule                &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
definition foo of  bar ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
définition foo de bar ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Labeled definition or rule              &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
label foo definition bar ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
étiquette foo définition bar ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Exception to label                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
exception foo definition bar ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
exception foo définition bar ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Exception to implicit                   &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
exception definition bar ...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
exception définition bar ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Assertion                               &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
assertion...
```
\end{minted}
      \vspace*{-1.75em}
                                              &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
assertion ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}





  \section*{Expressions}
  \begin{center}
    \begin{tabular}{p{0.2\columnwidth}p{0.375\columnwidth}p{0.345\columnwidth}}
      \toprule
      Feature                           & English syntax & French syntax \\\midrule
      Pattern matching                  &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
match ... with pattern
 -- Foo of foo: ...
 -- Bar : ...
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
selon ... sous forme
  -- Foo de foo: ...
  -- Bar: ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Pattern test and optional binding &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... with pattern Foo
... with pattern Bar of bar and ...
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... sous forme Foo
... sous forme Bar de bar et
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Constructor injection             &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
Foo content ...       Bar
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
Foo contenu ...       Bar
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Structure literal                 &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
Foo { -- bar: ... -- baz: ...}
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
Foo { -- bar: ... -- baz: ...}
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Structure field access            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(...).foo
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(...).foo
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Function call                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... of ...
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Subscope variable                 &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
foo.bar
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
foo.bar
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Conditional                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
if ... then ... else ...
```
\end{minted}
      \vspace*{-1.75em}
                                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
si ... alors ... sinon
```
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}

  \section*{Collections}
  \begin{center}
    \begin{tabular}{p{0.175\columnwidth}p{0.325\columnwidth}p{0.4\columnwidth}}
      \toprule
      Feature            & English syntax & French syntax \\\midrule
      Collection literal &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
[ ...; ...; ...]
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
[ ...; ...; ...]
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Presence test      &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... in ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... dans ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Cardinal           &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
number of ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
nombre de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Existence test     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
exists foo in ... such that ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
existe foo dans ... tel que ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      For all test       &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
for all foo in ... we have ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
pour tout foo dans ... on a ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      For all test       &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
for all foo in ... we have ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
pour tout foo dans ... on a ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Map/filter         &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
map for foo in ... of ...
filter for foo in ... of ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
application pour foo dans ... de ...
filtre pour foo dans ... de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Aggregation        &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
sum money for foo in ... of ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
somme argent pour foo dans ... de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Conditional count  &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
number for foo in ... of ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
nombre pour foo dans ... de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Extremum           &
      \vspace*{-1.75em}
      \begin{minted}[fontsize=\scriptsize]{catala_en}
```catala
maximum integer initial ... for ... in ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}[fontsize=\scriptsize]{catala_fr}
```catala
maximum entier initial ... pour ... dans ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Arg-extremum       &
      \vspace*{-1.75em}
      \begin{minted}[fontsize=\tiny]{catala_en}
```catala
content minimum decimal initial ... for ... in ...
```
\end{minted}
      \vspace*{-1.75em}
                         &
      \vspace*{-1.75em}
      \begin{minted}[fontsize=\scriptsize]{catala_fr}
```catala
contenu minimum décimal initial ... pour ... dans ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}


  \section*{Operators}
  \begin{center}
    \begin{tabular}{p{0.2\columnwidth}p{0.3\columnwidth}p{0.3\columnwidth}}
      \toprule
      Feature                         & English syntax & French syntax \\\midrule
      Integer to decimal              &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
integer_to_decimal of ...
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
entier_vers_décimal de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Date parts                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
get_day of ...
get_month of ...
get_year of ...
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
accès_jour de ...
accès_mois de ...
accès_année de ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Logical inclusive or            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... or ...
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... ou ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Logical exclusive or            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... xor ...
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... ou bien ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Logical and                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... and ...
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... et ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Polymorphic structural equality &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
... = ...
... != ...
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
... = ...
... != ...
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Integer sum                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(integer) + (integer)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(entier) + (entier)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Integer substraction            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(integer) - (integer)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(entier) - (entier)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Integer multiplication          &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(integer) * (integer)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(entier) * (entier)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Integer division                &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(integer) / (integer)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(entier) / (entier)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Integer comparison              &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
<   <=   >   >=
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
<   <=   >   >=
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Decimal sum                     &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(decimal) +. (decimal)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(décimal) +. (décimal)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Decimal substraction            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(decimal) -. (decimal)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(décimal) -. (décimal)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Decimal multiplication          &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(decimal) *. (decimal)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(décimal) *. (décimal)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Decimal division                &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(decimal) /. (decimal)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(décimal) /. (décimal)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Decimal comparison              &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
<.   <=.   >.   >=.
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
<.   <=.   >.   >=.
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money sum                       &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(money) +$ (money)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(argent) +€ (argent)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money substraction              &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(money) -$ (money)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(argent) -€ (argent)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money multiplication            &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(money) *$ (decimal)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(argent) *€ (décimal)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money division                  &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(money) /$ (money)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(argent) /€ (argent)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Money comparison                &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
<$   <=$   >$   >=$
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
<€   <=€   >€   >=€
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Date sum                        &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(date) +@ (duration)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(date) +@ (durée)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Date substraction               &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(date) -@ (date)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(date) -@ (date)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Date comparison                 &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
<@   <=@   >@   >=@
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
<@   <=@   >@   >=@
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Duration sum                    &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(duration) +^ (duration)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(durée) +^ (durée)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Duration substraction           &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(duration) -^ (duration)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(durée) -^ (durée)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Duration division               &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
(duration) /^ (duration)
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
(durée) /^ (durée)
```
\end{minted}
      \vspace*{-1.75em}
      \\
      Duration comparison             &
      \vspace*{-1.75em}
      \begin{minted}{catala_en}
```catala
<^   <=^   >^   >=^
```
\end{minted}
      \vspace*{-1.75em}
                                      &
      \vspace*{-1.75em}
      \begin{minted}{catala_fr}
```catala
<^   <=^   >^   >=^
```
\end{minted}
      \vspace*{-1.75em}
      \\
      \bottomrule
    \end{tabular}
  \end{center}



\end{multicols*}
\end{document}
