 }
 
 extension Int8: Parameter {
+    /// See `Parameter.uniqueSlug`
     public static var uniqueSlug: String {
         return "swift-int8"
     }
     
+    /// Attempts to read the parameter into a `Int8`
     public static func make(for parameter: String, in request: Request) throws -> Int8 {
         guard let number = Int8(parameter) else {
             throw Error(identifier: "parameterNotAnInt", reason: "The parameter was not convertible to an Int8")

}

extension Int16: Parameter {
    public static var uniqueSlug: String {
        return "swift-int16"
    }
    
    public static func make(for parameter: String, in request: Request) throws -> Int16 {
        guard let number = Int16(parameter) else {
            throw Error(identifier: "parameterNotAnInt", reason: "The parameter was not convertible to an Int16")

import Routing

extension String: Parameter {
    /// See `Parameter.uniqueSlug`
    public static var uniqueSlug: String {
        return "swift-string"
    }
    
    /// Reads the raw parameter
    public static func make(for parameter: String, in request: Request) throws -> String {
        return parameter
    }
}

extension Int: Parameter {
    /// See `Parameter.uniqueSlug`
    public static var uniqueSlug: String {
        return "swift-int"
    }
    
    /// Attempts to read the parameter into a `Int`
    public static func make(for parameter: String, in request: Request) throws -> Int {
        guard let number = Int(parameter) else {
            throw Error(identifier: "parameterNotAnInt", reason: "The parameter was not convertible to an Int")
