-- | An alternative to "Data.Dynamic" with a different constraint on 'toDyn'moduleData.DynamicAltwhereimportData.Dynamic()importData.TypeableimportGHC.PrimimportUnsafe.CoerceimportData.PolyProxydataDynamic=DynamicTypeRepAnytoDyn::forallab.Typeable(a->b)=>P(a->b)->a->DynamictoDyn_a=casesplitTyConApp$typeOf(undefined::a->b)of(_,[ta,_])->Dynamicta(unsafeCoercea)fromDyn::Typeablea=>Dynamic->MaybeafromDyn(Dynamicta)|b<-unsafeCoercea,t==typeOfb=JustbfromDyn_=Nothing