úΫ Æ /Class which calculates type level disjunction. "Class which predicts if type list s contains e.  if s contains e, bool should be TyTrue.  if s doesn' t contains e, bool should be TyFalse. 5Class for trying injection and projection of values. D If there are no matching types, it fails with returning Nothing. > If there are many matching types, left-most type will win. $Represents Type level boolean False #Represents Type level boolean True Represents Type level list.       Provides plient function. Holds e == prj (inj e s) for all s and e. Injects a value of type e into s if s contains the type e. Projects a value of type e out from s if s contains the type e. Updates a value e in s, using given function e -> e.       has-0.2.1Data.HasData.Has.Engine:*:HasinjprjupdTyOrtyorContainscontainsMayHaveinj'prj'TyFalseTyTrue