module Recipes where import Data.Map.Strict qualified as Map import Data.Text.Short qualified as ShortText import Graph.DOT (DOT) import Graph.DOT qualified as DOT import Worksheets.Utils.Prelude type Type = ShortText type Name = ShortText data Recipe = Recipe { recipeFunctions :: [Function] } data Function = Function { functionInputs :: Map Name Type , functionSteps :: [ShortText] , functionOutputs :: Map Name Type } functionDOT :: Name -> Function -> DOT functionDOT functionName Function{..} = DOT.dotLine $ functionName & DOT.builderQuotedShortText