5 May
                
                    2017
                
            
            
                5 May
                
                '17
                
            
            
            
        
    
                7:30 a.m.
            
        You can use a `Proxy` argument to explicitly signal to GHC what type it should be, or TypeApplications, but I don't think either of those will help with implementing this.
I guess you're right. It seems my examples where only working because somewhere along the line types where defaulted to () – throwing away any information I did have. I suppose what I would actually need for the elusive cast is something like a (forall a . c a :=> d a). I found some interesting bits in Data.Constraint.Forall to pursue in that direction, but I'm far from understanding how to use them. Anyway, thanks for the help. MarLinn