Whoops. I forgot you need the explicit `forall` with scoped type variables. I thought there was something much more involved going on here. Thanks, Shachaf.
Eric On Jan 18, 2013, at 17:54 , Shachaf Ben-Kiki <shac...@gmail.com> wrote: > On Fri, Jan 18, 2013 at 3:32 PM, Eric M. Pashman <eric.pash...@gmail.com> > wrote: >> >> normalize :: (Modular s a, Integral a) => a -> M s a >> normalize x = (M (mod x (modulus (undefined :: s)))) :: M s a >> > > If you want your type variables to be scoped, you have to annotate > them explicitly: > > normalize :: forall s a. (Modular s a, Integral a) => a -> M s a > normalize x = M (mod x (modulus (undefined :: s))) > > See > <http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/other-type-extensions.html#scoped-type-variables>. > > Shachaf _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users