update
[mTask.git] / Generics / gCons.icl
index 8fbf479..62caa27 100644 (file)
@@ -8,7 +8,14 @@ implementation module Generics.gCons
 */
 
 import StdEnv, StdGeneric, GenBimap, _SystemStrictLists
+import Data.Functor
 import Data.List
+import Data.Maybe
+
+consByName :: String -> Maybe a | conses{|*|}, consName{|*|} a
+consByName a = let cs = conses{|*|}
+       in ((!!) cs) <$> elemIndex a (map consName{|*|} cs)
+       
 
 generic consName a :: a -> String
 consName{|CONS of {gcd_name}|} f x = gcd_name