interface IModule {
    /**
     * @notice This function returns the signature of configure function
     */
    function getInitFunction() external pure returns(bytes4 initFunction);

    /**
     * @notice Return the permission flags that are associated with a module
     */
    function getPermissions() external view returns(bytes32[] memory permissions);

}
/**
 * @title Interface that every module contract should implement
 */
function getPermissions() external view returns(bytes32[] memory permissions);

/**
 * @notice Return the permission flags that are associated with a module
 */