'type cast' is a single idea. It's a coding/programming term meaning to specify a data type by forcing it, type-casting it - into the desired form. For instance "3" is a 'string', which is a text data type. The quotes in programming make that quite specific; it's not a number any more, it's a string, even though the string contains what to a human looks exactly like a number. Computers don't see things the way humans do. So - if we need to take that string & force it to become a number, we **type-cast** it to an integer [which is a whole number with no decimals] Our string "3" then becomes the integer 3 in pseudo-code... `string myText = "3"; integer myNumber = (integer)myText;` That `(integer)` in brackets is the 'forcing', the type-cast. Whether to hyphenate or not is probably a UK/US thing. I'm British, we hyphenate a lot more than the Americans. I guess it could come from 'to throw' it into a particular type, but I'm not certain. To cast a spell would be a similar use - whether that's 'thrown' might be debatable. Looking down the 10 meanings in the [Oxford Dictionary][1] for 'cast' I honestly wouldn't really know which it would fall under. It might even be more akin to casting an object from molten metal. [1]: https://en.oxforddictionaries.com/definition/cast