aboutsummaryrefslogtreecommitdiff
path: root/src/Language/Mili/Compiler.hs
blob: ab2376795b88166f82e61b1a9b64f7d6406dc69c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- MIT License, Copyright (c) 2024 Marvin Borner

module Language.Mili.Compiler
  ( compile
  ) where

import           Data.Mili                      ( Nat(..)
                                                , Term(..)
                                                , shift
                                                )

data Comp = CAbs String Comp                  -- | Abstraction with pointer
              | CApp Comp Comp                -- | Application
              | CVar                          -- | Namless variable
              | CNum Nat                      -- | Peano numeral
              | CRec Comp Comp Comp Comp Comp -- | Unbounded iteration

compile :: Term -> Comp
compile t = CVar