swh:1:snp:aeaf3dbb58f5be84b565e73b5ade1503ee8cb6d6
Raw File
Tip revision: b6407e0f026cf5491ca5ed0a35ea5cf316ebe8ca authored by Anish Tondwalkar on 21 May 2021, 03:15:25 UTC
formatted for submission
Tip revision: b6407e0
mochi-app-succ.hs
bool :: Bool
bool = True

succ :: rforall a. n:Int ~> ({v:Int | v = n + 1} -> a) -> {v:Int | v = n} -> a
succ = \f x -> f (x + 1)

app :: rforall a. m:Int ~> ({v:Int | v = m} -> a) -> {v:Int | v = m} -> a
app = \f x -> if bool then app (succ f) (x - 1) else f x

check :: x:Int -> y:{v:Int | v == x} -> Int
check = \x y -> 0

main :: Int -> Int
main = \n ->
    app (check n) n
back to top