
I had this exact same issue when I swapped e and e1 by mistake. Does your code work right without the type signature or does it just compile? On Jan 2, 2006, at 8:59 AM, Dominic Steinitz wrote:
Codec/ASN1/BER.hs:66:0: Quantified type variable `e1' is unified with another quantified type variable e When trying to generalise the type inferred for `choiceAux' Signature type: forall (m :: * -> *) e e1. (MonadState [Maybe Encoding] m, MonadState [Maybe Encoding] (StateT [Maybe Encoding] m), MonadError e (StateT [Maybe Encoding] m), MonadError e1 m) => (TagPlicity, NamedType) -> Encoding -> m Defaulted Type to generalise: (TagPlicity, NamedType) -> Encoding -> m Defaulted In the type signature for `choiceAux' When generalising the type(s) for tc, choiceAux, k
Changing e1 to e makes it typecheck.