<div dir="ltr"><div>this builds. not sure if the instances are as intended</div><div><br></div><div><br></div><div>{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}</div><div>module SetClass where</div><div><br></div><div>data TimeFacts t = Bef (t, t, TimeFacts t) | New</div><div><br></div><div>class SetClass t  where</div><div>class SetClass t => Time l t  where</div><div>class Time l t => TimeE l t where</div><div>class Time l t => TimeTO l t where</div><div><br></div><div><br></div><div>instance SetClass (TimeFacts t) where -- OK</div><div>instance (SetClass t) => Time (TimeFacts t) t where</div><div>instance (SetClass t) => TimeE (TimeFacts t) t where</div><div>instance (SetClass t) => TimeTO (TimeFacts t) t where</div><div><br></div>​</div>