| 354 | | maybeM rv $ \code -> return $ metaPrim |
| 355 | | { subAssoc = subAssoc code |
| 356 | | , subParams = subParams code |
| 357 | | , subBody = Prim |
| 358 | | (\x -> op1HyperPrefix code (listArg x)) |
| 359 | | } |
| | 354 | maybeM rv (return . makePrefixHyperCode) |
| | 355 | |
| | 356 | makePrefixHyperCode code = metaPrim |
| | 357 | { subAssoc = subAssoc code |
| | 358 | , subParams = subParams code |
| | 359 | , subBody = Prim |
| | 360 | (\x -> op1HyperPrefix code (listArg x)) |
| | 361 | } |
| 401 | | MPost -> buildPrefixHyper var' -- +<< |
| 402 | | MPre -> buildPostfixHyper var' -- >>+ |
| 403 | | MHyper -> buildInfixHyper var' -- >>+<< |
| 404 | | MFold -> buildReduce varInfix MFold MNil -- [+] |
| 405 | | MScan -> buildReduce varInfix MScan MNil -- [\+] |
| 406 | | MHyperFold -> buildReduce varInfix MFold MHyper -- [>>+<<] |
| 407 | | MHyperScan -> buildReduce varInfix MScan MHyper -- [>>+<<] |
| 408 | | _ -> return Nothing |
| | 407 | MPost -> buildPrefixHyper var' -- +<< |
| | 408 | MPre -> buildPostfixHyper var' -- >>+ |
| | 409 | MHyper -> buildInfixHyper var' -- >>+<< |
| | 410 | MFold -> buildReduce varInfix MFold MNil MNil -- [+] |
| | 411 | MScan -> buildReduce varInfix MScan MNil MNil -- [\+] |
| | 412 | MFoldPost -> buildReduce varInfix MFold MNil MPost -- [+] |
| | 413 | MScanPost -> buildReduce varInfix MScan MNil MPost -- [\+] |
| | 414 | MHyperFold -> buildReduce varInfix MFold MHyper MNil -- [>>+<<] |
| | 415 | MHyperScan -> buildReduce varInfix MScan MHyper MNil -- [>>+<<] |
| | 416 | MHyperFoldPost -> buildReduce varInfix MFold MHyper MPost -- [>>+<<] |
| | 417 | MHyperScanPost -> buildReduce varInfix MScan MHyper MPost -- [>>+<<] |
| | 418 | _ -> return Nothing |