I've created a simple type declaration:

data MathExpression = Float
    | Add MathExpression MathExpression
    | Subtract MathExpression MathExpression
    | Multiply MathExpression MathExpression
    | Divide MathExpression MathExpression
      deriving (Show)

Now how do I create an instance of MathExpression which is just a Float?

This doesn't work:

*Main> let pi = 3.14 :: MathExpression

<interactive>:1:10:
    No instance for (Fractional MathExpression)
      arising from the literal `3.14'
    Possible fix:
      add an instance declaration for (Fractional MathExpression)
    In the expression: 3.14 :: MathExpression
    In an equation for `pi': pi = 3.14 :: MathExpression