{ config, lib, ... }:
let
  inherit (lib)
    types
    mkOption
    setDefaultModuleLocation
    evalModules
    ;
  inherit (types)
    deferredModule
    lazyAttrsOf
    submodule
    str
    raw
    enum
    ;
in
{
  options = {
    deferred = mkOption {
      type = deferredModule;
    };
    result = mkOption {
      default = (evalModules { modules = [ config.deferred ]; }).config.result;
    };
  };
  config = {
    deferred =
      { ... }:
      # this should be an attrset, so this fails
      true;
  };
}
