{ config, inputs, lib, pkgs, ... }: let packages = builtins.attrValues { inherit (pkgs) julia; # High-performance dynamic language for technical computing }; in { options = { my.dev.julia = { enable = lib.mkEnableOption "Install Julia globally"; users = lib.mkOption { type = lib.types.either lib.types.str (lib.types.listOf lib.types.str); default = config.my.toggleUsers.dev; merge = inputs.self.lib.mergeUsersOption lib; description = "Users to install Julia packages for"; }; }; devShells.julia = lib.mkOption { type = lib.types.package; default = pkgs.mkShell { inherit packages; name = "julia-dev-shell"; shellHook = '' echo "🔬 Julia dev environment" ''; }; description = "Julia development shell"; }; }; config = lib.mkIf config.my.dev.julia.enable { users.users = inputs.self.lib.mkUserAttrs lib config.my.dev.julia.users { inherit packages; }; }; }