haskell - Exporting a polymorphic MonadState function for a particular state data type -


what i'm trying (in module i'm writing) export function works on particular type in state monad (in example below, type foo). user able use function in whatever monadstate type wish: state.lazy, state.strict, statet, etc. needs polymorphic in outer state monad.

here example of i'd do:

edited better question:

import control.monad.state  data foo = foo { cnt :: int, val :: }  --test :: state (foo a)           --  works --test :: statet (foo a) maybe    --  ...so --  ... including following signature gives error: test :: monadstate (foo a) m => m test = modify (\(foo a)-> foo (i+1) a) >> gets val 

ghc complains flexibleinstances extension required define type above. using extension correct way define function or there better way?

thanks

can't use monadstate typeclass?

{-# language flexiblecontexts #-} import control.monad.state  data foo = foo { cnt :: int, val :: }   test :: monadstate (foo a) m => m test = modify (\(foo a)-> foo (i+1) a) >> gets val 

it loads fine in ghci.

edit: mtl-2.0 , ghci-7.0.1


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -