{
    "mode": "info",
    "parameter": "Specio::Constraint::Parameterizable",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/info/Specio%3A%3AConstraint%3A%3AParameterizable/json",
    "generated": "2026-07-05T09:31:06Z",
    "synopsis": "my $arrayref = t('ArrayRef');\nmy $arrayrefofint = $arrayref->parameterize( of => t('Int') );",
    "sections": {
        "Specio::Constraint::PaUsertContributedSpecio::Constraint::Parameterizable(3pm)": {
            "content": "",
            "subsections": []
        },
        "NAME": {
            "content": "Specio::Constraint::Parameterizable - A class which represents\nparameterizable constraints\n",
            "subsections": []
        },
        "VERSION": {
            "content": "version 0.47\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "my $arrayref = t('ArrayRef');\n\nmy $arrayrefofint = $arrayref->parameterize( of => t('Int') );\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "This class implements the API for parameterizable types like \"ArrayRef\"\nand \"Maybe\".\n",
            "subsections": []
        },
        "API": {
            "content": "This class implements the same API as Specio::Constraint::Simple, with\na few additions.\n\nSpecio::Constraint::Parameterizable->new(...)\nThis class's constructor accepts two additional parameters:\n\no   parameterizedconstraintgenerator\n\nThis is a subroutine that generates a new constraint subroutine\nwhen the type is parameterized.\n\nIt will be called as a method on the type and will be passed a\nsingle argument, the type object for the type parameter.\n\nThis parameter is mutually exclusive with the\n\"parameterizedinlinegenerator\" parameter.\n\no   parameterizedinlinegenerator\n\nThis is a subroutine that generates a new inline generator\nsubroutine when the type is parameterized.\n\nIt will be called as a method on the\nSpecio::Constraint::Parameterized object when that object needs to\ngenerate an inline constraint. It will receive the type parameter\nas the first argument and the variable name as a string as the\nsecond.\n\nThis probably seems fairly confusing, so looking at the examples in\nthe Specio::Library::Builtins code may be helpful.\n\nThis parameter is mutually exclusive with the\n\"parameterizedconstraintgenerator\" parameter.\n\n$type->parameterize(...)\nThis method takes two arguments. The \"of\" argument should be an object\nwhich does the Specio::Constraint::Role::Interface role, and is\nrequired.\n\nThe other argument, \"declaredat\", is optional. If it is not given,\nthen a new Specio::DeclaredAt object is creating using a call stack\ndepth of 1.\n\nThis method returns a new Specio::Constraint::Parameterized object.\n",
            "subsections": []
        },
        "SUPPORT": {
            "content": "Bugs may be submitted at\n<https://github.com/houseabsolute/Specio/issues>.\n\nI am also usually active on IRC as 'autarch' on \"irc://irc.perl.org\".\n",
            "subsections": []
        },
        "SOURCE": {
            "content": "The source code repository for Specio can be found at\n<https://github.com/houseabsolute/Specio>.\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Dave Rolsky <autarch@urth.org>\n",
            "subsections": []
        },
        "COPYRIGHT AND LICENSE": {
            "content": "This software is Copyright (c) 2012 - 2021 by Dave Rolsky.\n\nThis is free software, licensed under:\n\nThe Artistic License 2.0 (GPL Compatible)\n\nThe full text of the license can be found in the LICENSE file included\nwith this distribution.\n\nperl v5.32.0                      2021Specio::Constraint::Parameterizable(3pm)",
            "subsections": []
        }
    },
    "summary": "Specio::Constraint::Parameterizable - A class which represents parameterizable constraints",
    "flags": [],
    "examples": [],
    "see_also": []
}