Micro frameworks are popular now, so I'll go nano framework :-). This is all the code:
/** * `undefined()` pretends to be able to produce a value of any type `T` which can * be very useful whilst writing a program. It happens that you need a value * (which can be a function as well) of a certain type but you can't produce it * just yet. However, you can always temporarily replace it by `undefined()`. * * Inspired by Haskell's * [undefined](http://hackage.haskell.org/package/base-4.7.0.2/docs/Prelude.html#v:undefined). * * Invoking `undefined()` will crash your program. * * Some examples: * * - `let x : String = undefined()` * - `let f : String -> Int? = undefined("string to optional int function")` * - `return undefined() /* in any function */` * - `let x : String = (undefined() as Int -> String)(42)` * - ... * * What a crash looks like: * * `fatal error: undefined: main.swift, line 131` * */ public func undefined<T>(hint: String = "", file: StaticString = #file, line: UInt = #line) -> T { let message = hint == "" ? "" : ": \(hint)" fatalError("undefined \(T.self)\(message)", file:file, line:line) } See my slides about undefined() from my Further Leveraging the Type System talk at Swift Summit 2015.