packages feed

typecheck-plugin-nat-simple-0.1.0.7: test/log.hs

{-# LANGUAGE DataKinds, TypeOperators #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs -fplugin=Plugin.TypeCheck.Nat.Simple #-}

import GHC.TypeNats
import Data.Proxy

foo :: 1 <= n => Proxy (n - 1 + 1) -> Proxy (n + 1 - 1)
foo = id

bar :: 1 <= a => Proxy (a + 1 - 1) -> Proxy (a - 1 + 1)
bar = id

baz :: 1 <= b => Proxy (a + b) -> Proxy ((a + 1) + (b - 1))
baz = id

hoge :: Proxy (a - 1) -> Proxy (a - 1)
hoge = id

main :: IO ()
main = putStrLn "test log"