Sorry if the question is very elementary, I am still very new to Haskell. Lets say I have a function that can only work with two numbers that are in the golden ration (1.618), h
The easiest technique is to use smart constructors, which use a function from Int to GoldenInt, that checks that your values are in the required ratios.
With more effort, you can use type level numbers to ensure that no runtime check is necessary, however, given you're a beginner, I would stick to the smart constructor method.
Tom's answer above is an example of this idiom.