summaryrefslogtreecommitdiff
path: root/app/Main.hs
blob: c2f03ee11f8bc74cfe824c427dd1aa7e03379c4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
module Main where

import Interpreter
import Text.Pretty.Simple
import qualified Data.Map as M

ppr :: Show a => a -> IO ()
ppr = pPrintOpt CheckColorTty defaultOutputOptionsDarkBg {outputOptionsCompactParens = True, outputOptionsIndentAmount = 2, outputOptionsPageWidth=80}

main :: IO ()
main = do
  let (res, interp) =
        prove [Goal, U (Struct (1, 2)), U (Atom 1), U (Atom 2), LastCall] $
        M.fromList
          [ ( (1, 2)
            , [ [U (Atom 333), U (Atom 444), NoGoal]
              , [ U (Atom 1)
                , U (Atom 2)
                , Goal
                , U (Struct (2, 0))
                , Call
                , Goal
                , U (Struct (5, 2))
                , U (Atom 333)
                , U (Atom 444)
                , LastCall
                ]
              ])
          , ((2, 0), [[NoGoal]])
          ]
  ppr interp
  ppr res