{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE RebindableSyntax #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes #-} module Control.Dsl.State.Get where import Prelude hiding ((>>), (>>=), return, fail) import Control.Dsl.PolyCont import Control.Dsl.State.State data Get r a where Get :: forall s r. Get r s instance PolyCont Get (State s r) s where runPolyCont Get f s = f s s