blob: 3fae93efa09c4f67a7bc3f3e659b8df138eff18a (
plain)
1
2
3
4
5
6
7
8
|
{-# LANGUAGE RankNTypes #-}
newtype FMList = FM {unFM :: forall m. m -> m}
main = print (delete 2000 (FM id) :: Int)
delete 0 _ = 0
delete n (FM a) = a $ delete (n-1) $ FM $ \g -> a (const g) undefined
|