module Cookbook.Project.Groups.Groups(Constructor,construct,implement) where
import qualified Cookbook.Ingredients.Lists.Modify as Md
import qualified Cookbook.Ingredients.Tupples.Look as Lk
import qualified Cookbook.Essential.Continuous as Ct
type Constructor = (String,[String])
construct :: String -> Constructor
construct x = ((Ct.before x ':'),(Md.splitOn (Ct.after x ':') '_'))
implement :: String -> [Constructor] -> [(String,String)]
implement x c = zip typ (Md.splitOn (Ct.after x ':') ',')
where typ = case Lk.look c (Ct.before x ':') of (Just e) -> e; _ -> error "Type undefined."